diff --git a/descriptor-packages/tools/charm-generator/generator-runner.py b/descriptor-packages/tools/charm-generator/generator-runner.py
new file mode 100644
index 0000000..275156b
--- /dev/null
+++ b/descriptor-packages/tools/charm-generator/generator-runner.py
@@ -0,0 +1,22 @@
+# Copyright 2019 Whitestack, LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# For those usages not covered by the Apache License, Version 2.0 please
+# contact: esousa@whitestack.com or glavado@whitestack.com
+##
+
+from generator.generator import main
+
+if __name__ == '__main__':
+    main()
diff --git a/descriptor-packages/tools/charm-generator/generators/__init__.py b/descriptor-packages/tools/charm-generator/generator/__init__.py
similarity index 100%
copy from descriptor-packages/tools/charm-generator/generators/__init__.py
copy to descriptor-packages/tools/charm-generator/generator/__init__.py
diff --git a/descriptor-packages/tools/charm-generator/generator/__main__.py b/descriptor-packages/tools/charm-generator/generator/__main__.py
new file mode 100644
index 0000000..01143fb
--- /dev/null
+++ b/descriptor-packages/tools/charm-generator/generator/__main__.py
@@ -0,0 +1,21 @@
+# Copyright 2019 Whitestack, LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# For those usages not covered by the Apache License, Version 2.0 please
+# contact: esousa@whitestack.com or glavado@whitestack.com
+##
+
+from .generator import main
+
+main()
diff --git a/descriptor-packages/tools/charm-generator/actions/__init__.py b/descriptor-packages/tools/charm-generator/generator/actions/__init__.py
similarity index 100%
rename from descriptor-packages/tools/charm-generator/actions/__init__.py
rename to descriptor-packages/tools/charm-generator/generator/actions/__init__.py
diff --git a/descriptor-packages/tools/charm-generator/actions/templates/action.j2 b/descriptor-packages/tools/charm-generator/generator/actions/templates/action.j2
similarity index 100%
rename from descriptor-packages/tools/charm-generator/actions/templates/action.j2
rename to descriptor-packages/tools/charm-generator/generator/actions/templates/action.j2
diff --git a/descriptor-packages/tools/charm-generator/actions/templates/actions.yaml.j2 b/descriptor-packages/tools/charm-generator/generator/actions/templates/actions.yaml.j2
similarity index 100%
rename from descriptor-packages/tools/charm-generator/actions/templates/actions.yaml.j2
rename to descriptor-packages/tools/charm-generator/generator/actions/templates/actions.yaml.j2
diff --git a/descriptor-packages/tools/charm-generator/ansible-charm/__init__.py b/descriptor-packages/tools/charm-generator/generator/ansible-charm/__init__.py
similarity index 100%
rename from descriptor-packages/tools/charm-generator/ansible-charm/__init__.py
rename to descriptor-packages/tools/charm-generator/generator/ansible-charm/__init__.py
diff --git a/descriptor-packages/tools/charm-generator/ansible-charm/templates/ansible_charm.py.j2 b/descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/ansible_charm.py.j2
similarity index 100%
rename from descriptor-packages/tools/charm-generator/ansible-charm/templates/ansible_charm.py.j2
rename to descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/ansible_charm.py.j2
diff --git a/descriptor-packages/tools/charm-generator/ansible-charm/templates/ansible_lib.py.j2 b/descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/ansible_lib.py.j2
similarity index 100%
rename from descriptor-packages/tools/charm-generator/ansible-charm/templates/ansible_lib.py.j2
rename to descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/ansible_lib.py.j2
diff --git a/descriptor-packages/tools/charm-generator/ansible-charm/templates/layer.yaml.j2 b/descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/layer.yaml.j2
similarity index 100%
rename from descriptor-packages/tools/charm-generator/ansible-charm/templates/layer.yaml.j2
rename to descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/layer.yaml.j2
diff --git a/descriptor-packages/tools/charm-generator/generator.py b/descriptor-packages/tools/charm-generator/generator/generator.py
similarity index 98%
rename from descriptor-packages/tools/charm-generator/generator.py
rename to descriptor-packages/tools/charm-generator/generator/generator.py
index 22ce1cb..0ef9d1d 100644
--- a/descriptor-packages/tools/charm-generator/generator.py
+++ b/descriptor-packages/tools/charm-generator/generator/generator.py
@@ -16,13 +16,15 @@
 # contact: esousa@whitestack.com or glavado@whitestack.com
 ##
 
+__version__ = '1.0.0'
+
 import argparse
 import logging
 import sys
 
 from datetime import datetime
 
-from generators.ansible_generator import AnsibleGenerator
+from .generators.ansible_generator import AnsibleGenerator
 
 
 def configure_logger(args):
@@ -165,7 +167,3 @@
     generator.generate()
 
     logger.info('Generation process complete.')
-
-
-if __name__ == "__main__":
-    main()
diff --git a/descriptor-packages/tools/charm-generator/generators/__init__.py b/descriptor-packages/tools/charm-generator/generator/generators/__init__.py
similarity index 100%
rename from descriptor-packages/tools/charm-generator/generators/__init__.py
rename to descriptor-packages/tools/charm-generator/generator/generators/__init__.py
diff --git a/descriptor-packages/tools/charm-generator/generators/actions_generator.py b/descriptor-packages/tools/charm-generator/generator/generators/actions_generator.py
similarity index 98%
rename from descriptor-packages/tools/charm-generator/generators/actions_generator.py
rename to descriptor-packages/tools/charm-generator/generator/generators/actions_generator.py
index 832fd09..b3da7c3 100644
--- a/descriptor-packages/tools/charm-generator/generators/actions_generator.py
+++ b/descriptor-packages/tools/charm-generator/generator/generators/actions_generator.py
@@ -26,7 +26,7 @@
 
 class ActionsGenerator:
     LOGGER = logging.getLogger()
-    ENV = Environment(loader=PackageLoader('actions', 'templates'))
+    ENV = Environment(loader=PackageLoader('generator.actions', 'templates'))
 
     def __init__(self, metadata, actions, license=None, options=None):
         """
diff --git a/descriptor-packages/tools/charm-generator/generators/ansible_generator.py b/descriptor-packages/tools/charm-generator/generator/generators/ansible_generator.py
similarity index 96%
rename from descriptor-packages/tools/charm-generator/generators/ansible_generator.py
rename to descriptor-packages/tools/charm-generator/generator/generators/ansible_generator.py
index 18f5a5a..cefe422 100644
--- a/descriptor-packages/tools/charm-generator/generators/ansible_generator.py
+++ b/descriptor-packages/tools/charm-generator/generator/generators/ansible_generator.py
@@ -23,13 +23,13 @@
 
 from jinja2 import Environment, PackageLoader
 
-from generators.actions_generator import ActionsGenerator
-from generators.metadata_generator import MetadataGenerator
+from generator.generators.actions_generator import ActionsGenerator
+from generator.generators.metadata_generator import MetadataGenerator
 
 
 class AnsibleGenerator:
     LOGGER = logging.getLogger()
-    ENV = Environment(loader=PackageLoader('ansible-charm', 'templates'))
+    ENV = Environment(loader=PackageLoader('generator.ansible-charm', 'templates'))
 
     def __init__(self, metadata, license=None, options=None):
         """
diff --git a/descriptor-packages/tools/charm-generator/generators/metadata_generator.py b/descriptor-packages/tools/charm-generator/generator/generators/metadata_generator.py
similarity index 98%
rename from descriptor-packages/tools/charm-generator/generators/metadata_generator.py
rename to descriptor-packages/tools/charm-generator/generator/generators/metadata_generator.py
index 8b0d9b8..6c9b000 100644
--- a/descriptor-packages/tools/charm-generator/generators/metadata_generator.py
+++ b/descriptor-packages/tools/charm-generator/generator/generators/metadata_generator.py
@@ -28,7 +28,7 @@
 
 class MetadataGenerator:
     LOGGER = logging.getLogger()
-    ENV = Environment(loader=PackageLoader('metadata', 'templates'))
+    ENV = Environment(loader=PackageLoader('generator.metadata', 'templates'))
 
     def __init__(self, metadata, license=None, options=None):
         """
diff --git a/descriptor-packages/tools/charm-generator/metadata/__init__.py b/descriptor-packages/tools/charm-generator/generator/metadata/__init__.py
similarity index 100%
rename from descriptor-packages/tools/charm-generator/metadata/__init__.py
rename to descriptor-packages/tools/charm-generator/generator/metadata/__init__.py
diff --git a/descriptor-packages/tools/charm-generator/metadata/templates/metadata.yaml.j2 b/descriptor-packages/tools/charm-generator/generator/metadata/templates/metadata.yaml.j2
similarity index 100%
rename from descriptor-packages/tools/charm-generator/metadata/templates/metadata.yaml.j2
rename to descriptor-packages/tools/charm-generator/generator/metadata/templates/metadata.yaml.j2
diff --git a/descriptor-packages/tools/charm-generator/requirements.txt b/descriptor-packages/tools/charm-generator/requirements.txt
index 89ee2b0..f0aaeda 100644
--- a/descriptor-packages/tools/charm-generator/requirements.txt
+++ b/descriptor-packages/tools/charm-generator/requirements.txt
@@ -1 +1 @@
-Jinja2==2.10
+Jinja2>=2.10
diff --git a/descriptor-packages/tools/charm-generator/setup.py b/descriptor-packages/tools/charm-generator/setup.py
new file mode 100644
index 0000000..5015efa
--- /dev/null
+++ b/descriptor-packages/tools/charm-generator/setup.py
@@ -0,0 +1,55 @@
+# Copyright 2019 Whitestack, LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# For those usages not covered by the Apache License, Version 2.0 please
+# contact: esousa@whitestack.com or glavado@whitestack.com
+##
+
+import re
+import setuptools
+
+version = re.search(
+    r'^__version__\s*=\s*["\'](.*)["\']',
+    open('generator/generator.py').read(),
+    re.MULTILINE).group(1)
+
+with open('README.md', 'r') as f:
+    long_description = f.read()
+
+setuptools.setup(
+    name='osm-charm-generator',
+    packages=setuptools.find_packages(),
+    entry_points={
+        "console_scripts": ['osm-charm-generator = generator.generator:main']
+    },
+    version=version,
+    author='Eduardo Sousa',
+    author_email='esousa@whitestack.com',
+    description='OSM Charm Generator using Ansible',
+    long_description=long_description,
+    long_description_content_type='text/markdown',
+    url='https://osm.etsi.org',
+    install_requires=[
+        'Jinja2>=2.10'
+    ],
+    classifiers=[
+        'Programming Language :: Python :: 3 :: Only',
+        'License :: OSI Approved :: Apache Software License',
+        'Operating System :: POSIX :: Linux',
+        'Environment :: Console',
+        'Intended Audience :: Telecommunications Industry',
+        'Natural Language :: English',
+        'Topic :: Software Development :: Code Generators'
+    ]
+)
