diff --git a/apps/cli/executables/alma_reingester/__init__.py b/apps/cli/executables/alma_reingester/README.md
similarity index 100%
rename from apps/cli/executables/alma_reingester/__init__.py
rename to apps/cli/executables/alma_reingester/README.md
diff --git a/apps/cli/executables/alma_reingester/setup.py b/apps/cli/executables/alma_reingester/setup.py
new file mode 100644
index 0000000000000000000000000000000000000000..1793c98dc75dd7ff5871075aae26d4354542e553
--- /dev/null
+++ b/apps/cli/executables/alma_reingester/setup.py
@@ -0,0 +1,32 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+from pathlib import Path
+from setuptools import setup
+
+VERSION = open('src/alma_reingester/_version.py').readlines()[-1].split()[-1].strip("\"'")
+README = Path('README.md').read_text()
+
+setup(
+    name=Path().absolute().name,
+    version=VERSION,
+    description='NRAO Archive ALMA Reingester',
+    long_description=README,
+    author='NRAO SSA Team',
+    author_email='dms-ssa@nrao.edu',
+    url='TBD',
+    license="GPL",
+    install_requires=['cx-Oracle', 'pycapo', 'psycopg2', 'events', 'schema'],
+    keywords=[],
+    packages=['alma_reingester'],
+    package_dir={'':'src'},
+    classifiers=[
+        'Programming Language :: Python :: 3.8'
+    ],
+    entry_points={
+        'console_scripts': [
+            'alma-reingester = alma_reingester.reingester:main',
+            'ous-importer    = alma_reingester.ousimporter:main',
+        ]
+    },
+)
diff --git a/apps/cli/executables/alma_reingester/src/alma_reingester/__init__.py b/apps/cli/executables/alma_reingester/src/alma_reingester/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/apps/cli/executables/alma_reingester/src/alma_reingester/_version.py b/apps/cli/executables/alma_reingester/src/alma_reingester/_version.py
new file mode 100644
index 0000000000000000000000000000000000000000..e63ec3a147fc65f8e390ff413a349d66169f8ec1
--- /dev/null
+++ b/apps/cli/executables/alma_reingester/src/alma_reingester/_version.py
@@ -0,0 +1,2 @@
+""" Version information for this package, don't put anything else here. """
+___version___ = '4.0a1.dev1'
diff --git a/apps/cli/executables/alma_reingester/bulk_ingest.py b/apps/cli/executables/alma_reingester/src/alma_reingester/bulk_ingest.py
similarity index 100%
rename from apps/cli/executables/alma_reingester/bulk_ingest.py
rename to apps/cli/executables/alma_reingester/src/alma_reingester/bulk_ingest.py
diff --git a/apps/cli/executables/alma_reingester/fetchall.py b/apps/cli/executables/alma_reingester/src/alma_reingester/fetchall.py
similarity index 100%
rename from apps/cli/executables/alma_reingester/fetchall.py
rename to apps/cli/executables/alma_reingester/src/alma_reingester/fetchall.py
diff --git a/apps/cli/executables/alma_reingester/ousimporter.py b/apps/cli/executables/alma_reingester/src/alma_reingester/ousimporter.py
similarity index 100%
rename from apps/cli/executables/alma_reingester/ousimporter.py
rename to apps/cli/executables/alma_reingester/src/alma_reingester/ousimporter.py
diff --git a/apps/cli/executables/alma_reingester/reingester.py b/apps/cli/executables/alma_reingester/src/alma_reingester/reingester.py
similarity index 99%
rename from apps/cli/executables/alma_reingester/reingester.py
rename to apps/cli/executables/alma_reingester/src/alma_reingester/reingester.py
index 1d92d7f260270ed91cee5836de3f07c34098e003..c97bfcd483f594c3ac71f45e3b660e55c19042f2 100644
--- a/apps/cli/executables/alma_reingester/reingester.py
+++ b/apps/cli/executables/alma_reingester/src/alma_reingester/reingester.py
@@ -4,7 +4,7 @@ import shutil
 import cx_Oracle as almadb
 import psycopg2  as  archivedb
 import sys
-from pyat import events
+from events import events
 from pycapo import CapoConfig
 
 """
diff --git a/apps/cli/executables/alma_reingester/unstick.py b/apps/cli/executables/alma_reingester/src/alma_reingester/unstick.py
similarity index 83%
rename from apps/cli/executables/alma_reingester/unstick.py
rename to apps/cli/executables/alma_reingester/src/alma_reingester/unstick.py
index f9581476cd80629b6c65c98b9a122e74dbafa3bc..27ddba7b2ce95fc8505624132a6ce06ee3b7d9e4 100644
--- a/apps/cli/executables/alma_reingester/unstick.py
+++ b/apps/cli/executables/alma_reingester/src/alma_reingester/unstick.py
@@ -2,9 +2,9 @@
 Unsticks the reingestion queue by sending failure completions on running reingestions.
 """
 
-from pyat.events import events
-from pyat.schema import create_session
-from pyat.schema.model import AlmaReingestionQueue
+from events import events
+from schema import create_session
+from schema.model import AlmaReingestionQueue
 
 def main():
     session = create_session('SDM')
diff --git a/apps/cli/executables/alma_reingester/unstick_vlba.py b/apps/cli/executables/alma_reingester/src/alma_reingester/unstick_vlba.py
similarity index 100%
rename from apps/cli/executables/alma_reingester/unstick_vlba.py
rename to apps/cli/executables/alma_reingester/src/alma_reingester/unstick_vlba.py
diff --git a/shared/messaging/events/README.md b/shared/messaging/events/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/shared/messaging/events/__init__.py b/shared/messaging/events/__init__.py
deleted file mode 100644
index bbdc7b44d03632090ebb494e157a15bec9d2da91..0000000000000000000000000000000000000000
--- a/shared/messaging/events/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from pyat.events.events import *
\ No newline at end of file
diff --git a/shared/messaging/events/setup.py b/shared/messaging/events/setup.py
new file mode 100644
index 0000000000000000000000000000000000000000..f866cf79a01c30a364a5e8bdd48f26bad063a77a
--- /dev/null
+++ b/shared/messaging/events/setup.py
@@ -0,0 +1,26 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+from pathlib import Path
+from setuptools import setup, find_packages
+
+VERSION = open('src/events/_version.py').readlines()[-1].split()[-1].strip("\"'")
+README = Path('README.md').read_text()
+
+setup(
+    name=Path().absolute().name,
+    version=VERSION,
+    description='NRAO Archive Event Library',
+    long_description=README,
+    author='NRAO SSA Team',
+    author_email='dms-ssa@nrao.edu',
+    url='TBD',
+    license="GPL",
+    install_requires=['pika', 'pycapo'],
+    keywords=[],
+    packages=['events'],
+    package_dir={'':'src'},
+    classifiers=[
+        'Programming Language :: Python :: 3.8'
+    ]
+)
diff --git a/shared/messaging/events/src/events/__init__.py b/shared/messaging/events/src/events/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/shared/messaging/events/src/events/_version.py b/shared/messaging/events/src/events/_version.py
new file mode 100644
index 0000000000000000000000000000000000000000..41dbad0d2dda23b541e627149276c445283d49a6
--- /dev/null
+++ b/shared/messaging/events/src/events/_version.py
@@ -0,0 +1,2 @@
+""" Version information for this package, don't put anything else here. """
+___version___ = '0.1.5'
diff --git a/shared/messaging/events/events.py b/shared/messaging/events/src/events/events.py
similarity index 100%
rename from shared/messaging/events/events.py
rename to shared/messaging/events/src/events/events.py
diff --git a/shared/schema/README.md b/shared/schema/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/shared/schema/setup.py b/shared/schema/setup.py
new file mode 100644
index 0000000000000000000000000000000000000000..6ceb111c8d0cdc5477003fe44333d652ef73f690
--- /dev/null
+++ b/shared/schema/setup.py
@@ -0,0 +1,26 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+from pathlib import Path
+from setuptools import setup, find_packages
+
+VERSION = open('src/schema/_version.py').readlines()[-1].split()[-1].strip("\"'")
+README = Path('README.md').read_text()
+
+setup(
+    name=Path().absolute().name,
+    version=VERSION,
+    description='NRAO Archive Schema Library',
+    long_description=README,
+    author='NRAO SSA Team',
+    author_email='dms-ssa@nrao.edu',
+    url='TBD',
+    license="GPL",
+    install_requires=['sqlalchemy', 'pycapo', 'psycopg2', 'mysqlclient', 'cx-Oracle'],
+    keywords=[],
+    packages=['schema'],
+    package_dir={'':'src'},
+    classifiers=[
+        'Programming Language :: Python :: 3.8'
+    ]
+)
diff --git a/shared/model/__init__.py b/shared/schema/src/schema/__init__.py
similarity index 98%
rename from shared/model/__init__.py
rename to shared/schema/src/schema/__init__.py
index 56296fbaa2ec80091d591b52167667458beac46a..18dcffe8ebcbba4dc18e6aecde0e0d1f66a29873 100644
--- a/shared/model/__init__.py
+++ b/shared/schema/src/schema/__init__.py
@@ -1,6 +1,6 @@
 # publish our behavior-enhanced table classes
 import sqlalchemy
-from pyat.schema.model import *
+from .model import *
 from sqlalchemy.orm import sessionmaker
 from pycapo import CapoConfig
 
diff --git a/shared/schema/src/schema/_version.py b/shared/schema/src/schema/_version.py
new file mode 100644
index 0000000000000000000000000000000000000000..e63ec3a147fc65f8e390ff413a349d66169f8ec1
--- /dev/null
+++ b/shared/schema/src/schema/_version.py
@@ -0,0 +1,2 @@
+""" Version information for this package, don't put anything else here. """
+___version___ = '4.0a1.dev1'
diff --git a/shared/model/almamodel.py b/shared/schema/src/schema/almamodel.py
similarity index 100%
rename from shared/model/almamodel.py
rename to shared/schema/src/schema/almamodel.py
diff --git a/shared/model/legacy_model.py b/shared/schema/src/schema/legacy_model.py
similarity index 100%
rename from shared/model/legacy_model.py
rename to shared/schema/src/schema/legacy_model.py
diff --git a/shared/model/logs.py b/shared/schema/src/schema/logs.py
similarity index 88%
rename from shared/model/logs.py
rename to shared/schema/src/schema/logs.py
index 6f38d4f79ade975ce062d7676b3ce5291823b084..1b0602b7a075202b577269a16365c9f3314765a7 100644
--- a/shared/model/logs.py
+++ b/shared/schema/src/schema/logs.py
@@ -1,7 +1,7 @@
 import pendulum
 
-from pyat.schema import create_session
-from pyat.schema.model import t_logs as logs
+from . import create_session
+from .model import t_logs as logs
 
 session = create_session('SDM')
 
diff --git a/shared/model/model.py b/shared/schema/src/schema/model.py
similarity index 100%
rename from shared/model/model.py
rename to shared/schema/src/schema/model.py
diff --git a/shared/model/ngasmodel.py b/shared/schema/src/schema/ngasmodel.py
similarity index 100%
rename from shared/model/ngasmodel.py
rename to shared/schema/src/schema/ngasmodel.py
diff --git a/shared/model/optmodel.py b/shared/schema/src/schema/optmodel.py
similarity index 100%
rename from shared/model/optmodel.py
rename to shared/schema/src/schema/optmodel.py
diff --git a/shared/model/pstmodel.py b/shared/schema/src/schema/pstmodel.py
similarity index 100%
rename from shared/model/pstmodel.py
rename to shared/schema/src/schema/pstmodel.py
diff --git a/shared/model/vlassmodel.py b/shared/schema/src/schema/vlassmodel.py
similarity index 100%
rename from shared/model/vlassmodel.py
rename to shared/schema/src/schema/vlassmodel.py