diff --git a/pyproject.toml b/pyproject.toml
index ed38c4a7f68885a41f207784b1b80bd889ab32cb..cf9616158f0dc69cbf5378c0d841b5367c44175a 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -33,4 +33,4 @@ classifiers = [
 Home = "https://git.shore.co.il/nimrod/transmission-feeder"
 
 [project.scripts]
-transmission-feeder = "transmission_feeder:main"
+transmission-feeder = "transmission_feeder"
diff --git a/transmission_feeder/__init__.py b/transmission_feeder/__init__.py
index 6f8856dd8728baa04c90dcf80ba00041dbe06ac2..94f21f4293a34b1da22baaf080c0b01dea559dd9 100644
--- a/transmission_feeder/__init__.py
+++ b/transmission_feeder/__init__.py
@@ -1,12 +1,3 @@
 "Add torrent to Transmission from RSS or Atom feeds."
-import sys
 
 __version__ = "0.0.1"
-
-
-def main():
-    """Main entrypoint."""
-
-
-if __name__ == "__main__":
-    sys.exit(main())
diff --git a/transmission_feeder/__main__.py b/transmission_feeder/__main__.py
new file mode 100644
index 0000000000000000000000000000000000000000..d904a40eecb87486e98a90f6a56e5e24f8a2315e
--- /dev/null
+++ b/transmission_feeder/__main__.py
@@ -0,0 +1,15 @@
+"""Main entrypoint module."""
+import argparse
+import transmission_feeder.config
+import transmission_feeder.db
+import transmission_feeder.transmission
+
+
+def build_arg_parser():
+    """Build the argument parser."""
+    return
+
+
+def main():
+    """Main entrypoint."""
+    return
diff --git a/transmission_feeder/config.py b/transmission_feeder/config.py
new file mode 100644
index 0000000000000000000000000000000000000000..7f2262864368a41c4ded22709559abaa9123f33e
--- /dev/null
+++ b/transmission_feeder/config.py
@@ -0,0 +1,10 @@
+import ruamel.yaml  # pylint: disable=import-error
+
+
+def get_config():
+    """Return a configuration dictionary.
+
+    This should be the definitive configuration item, after including
+    environment variables, default values, etc.
+    """
+    return
diff --git a/transmission_feeder/db.py b/transmission_feeder/db.py
new file mode 100644
index 0000000000000000000000000000000000000000..c9eeeb25dda01b1eaf0d560a4b2d7499cfd11fad
--- /dev/null
+++ b/transmission_feeder/db.py
@@ -0,0 +1,6 @@
+import sqlite3
+
+
+def get_conn(config):
+    """Return a SQLite database connection."""
+    return
diff --git a/transmission_feeder/transmission.py b/transmission_feeder/transmission.py
new file mode 100644
index 0000000000000000000000000000000000000000..23b6f9946b7569ec2c10de445934d5e642bd3a14
--- /dev/null
+++ b/transmission_feeder/transmission.py
@@ -0,0 +1,6 @@
+import transmission_rpc  # pylint: disable=import-error
+
+
+def get_client(config):
+    """Return a transmission_rpc client object."""
+    return