diff --git a/library/opdk_server_self.py b/library/opdk_server_self.py
deleted file mode 100644
index 1684390..0000000
--- a/library/opdk_server_self.py
+++ /dev/null
@@ -1,76 +0,0 @@
-import requests
-from requests import ConnectionError
-from requests.exceptions import RequestException
-import sys
-from requests.auth import HTTPBasicAuth
-from ansible.module_utils.basic import *
-
-BASE_SERVER_URL = 'http://localhost'
-SERVER_SELF_URI = '/v1/servers/self'
-SERVER_PORTS = {'ms': '8080',
-                'router': '8081',
-                'r': '8081',
-                'mp': '8082',
-                'rmp': '8082',
-                'qs': '8083',
-                'ps': '8084'}
-
-
-def get_server_self(server_type, username, password):
-    auth = HTTPBasicAuth(username, password)
-    url = BASE_SERVER_URL + ':' + SERVER_PORTS[server_type] + SERVER_SELF_URI
-    resp = requests.get(url, auth=auth)
-    return resp
-
-
-def map_server_self(server_self):
-    reported = server_self.json()
-    for p in reported['tags']['property']:
-        name = p['name']
-        value = p['value']
-        reported[name] = value
-    del reported['tags']
-    return reported
-
-
-def main():
-    module = AnsibleModule(
-            argument_spec=dict(
-                    username=dict(required=True, type='str', no_log=True),
-                    password=dict(required=True, type='str', no_log=True),
-                    server_type=dict(required=True, type='str', choices=['ms', 'router', 'r', 'mp', 'qs', 'ps', 'rmp'])
-            )
-    )
-
-    username = module.params['username']
-    password = module.params['password']
-    server_type = module.params['server_type']
-    try:
-        resp = get_server_self(server_type, username, password)
-        status_code = resp.status_code
-    except RequestException as ex:
-        status_code = 500
-        msg = str(ex) + " Did you run on the correct server?"
-        print(msg)
-
-    if status_code >= 200 and status_code < 300:
-        server_self = map_server_self(resp)
-        facts = {}
-        facts['edge_' + server_type + '_self'] = server_self
-        module.exit_json(
-                changed=True,
-                ansible_facts=facts
-        )
-    elif status_code > 400:
-        err_msg = "Error status code returned: ["
-        if 'msg' in globals():
-            err_msg += msg
-        module.fail_json(
-                changed=False,
-                msg=err_msg,
-                status_code=status_code,
-        )
-
-
-if __name__ == '__main__':
-    main()
diff --git a/meta/main.yml b/meta/main.yml
index c493f0b..d061661 100644
--- a/meta/main.yml
+++ b/meta/main.yml
@@ -12,4 +12,5 @@
   galaxy_tags:
   - apigee
   - opdk
-dependencies: []
+dependencies:
+- apigee-opdk-module
