diff --git a/compendium_v2/migrations/env.py b/compendium_v2/migrations/env.py
index cc238e276b173b781aad505ecb452f8e819e41c3..a8b57a37c3dffbf9c8c70cf8d6f846e01b284c74 100644
--- a/compendium_v2/migrations/env.py
+++ b/compendium_v2/migrations/env.py
@@ -1,4 +1,5 @@
 from __future__ import with_statement
+from compendium_v2.db import base_schema
 
 import logging
 from logging.config import fileConfig
@@ -19,7 +20,6 @@ logger = logging.getLogger('alembic.env')
 # for 'autogenerate' support
 # from myapp import mymodel
 # from compendium_v2.db.models import DataEntryItem, DataEntrySection
-from compendium_v2.db import base_schema
 
 target_metadata = base_schema.metadata
 
diff --git a/compendium_v2/migrations/versions/20221128_1223_1e8ba780b977_initial_data_entry_models.py b/compendium_v2/migrations/versions/20221128_1223_1e8ba780b977_initial_data_entry_models.py
index 774d35a429a82538881b74dc8ffb7340f9955261..d36793c893c33941b2b559b97123855c55ee2ccb 100644
--- a/compendium_v2/migrations/versions/20221128_1223_1e8ba780b977_initial_data_entry_models.py
+++ b/compendium_v2/migrations/versions/20221128_1223_1e8ba780b977_initial_data_entry_models.py
@@ -1,7 +1,7 @@
 """Initial Data Entry models
 
 Revision ID: 1e8ba780b977
-Revises: 
+Revises:
 Create Date: 2022-11-28 12:23:36.478734
 
 """
@@ -20,7 +20,8 @@ def upgrade():
     op.create_table('data_entry_sections',
                     sa.Column('id', sa.Integer(), nullable=False),
                     sa.Column('name', sa.String(length=128), nullable=True),
-                    sa.Column('description', sa.String(length=2048), nullable=True),
+                    sa.Column('description', sa.String(
+                        length=2048), nullable=True),
                     sa.Column('sort_order', sa.Integer(), nullable=True),
                     sa.Column('is_active', sa.Boolean(), nullable=True),
                     sa.PrimaryKeyConstraint('id'),
@@ -29,32 +30,43 @@ def upgrade():
     op.create_table('data_entry_settings',
                     sa.Column('id', sa.Integer(), nullable=False),
                     sa.Column('setting_type',
-                              sa.Enum('COLOUR_PALLETE', 'CHART_TYPE', 'HELP_ITEM', name='settingtype'),
+                              sa.Enum('COLOUR_PALLETE', 'CHART_TYPE',
+                                      'HELP_ITEM', name='settingtype'),
                               nullable=True),
-                    sa.Column('setting_value', sa.String(length=512), nullable=True),
+                    sa.Column('setting_value', sa.String(
+                        length=512), nullable=True),
                     sa.PrimaryKeyConstraint('id'),
                     schema='presentation'
                     )
     op.create_table('data_entry_items',
                     sa.Column('id', sa.Integer(), nullable=False),
                     sa.Column('title', sa.String(length=128), nullable=True),
-                    sa.Column('description', sa.String(length=2048), nullable=True),
+                    sa.Column('description', sa.String(
+                        length=2048), nullable=True),
                     sa.Column('sort_order', sa.Integer(), nullable=True),
                     sa.Column('is_visible', sa.Boolean(), nullable=True),
                     sa.Column('is_active', sa.Boolean(), nullable=True),
                     sa.Column('data_source',
-                              sa.Enum('BUDGETS_BY_YEAR', 'BUDGETS_BY_NREN', name='datasourcetype'),
+                              sa.Enum('BUDGETS_BY_YEAR',
+                                      'BUDGETS_BY_NREN',
+                                      name='datasourcetype'),
                               nullable=True),
                     sa.Column('section_id', sa.Integer(), nullable=True),
-                    sa.ForeignKeyConstraint(['section_id'], ['presentation.data_entry_sections.id'], ),
+                    sa.ForeignKeyConstraint(
+                        ['section_id'],
+                        ['presentation.data_entry_sections.id'], ),
                     sa.PrimaryKeyConstraint('id'),
                     schema='presentation'
                     )
     op.create_table('data_entry_settings_assoc_table',
                     sa.Column('item_id', sa.Integer(), nullable=True),
                     sa.Column('setting_id', sa.Integer(), nullable=True),
-                    sa.ForeignKeyConstraint(['item_id'], ['presentation.data_entry_items.id'], ),
-                    sa.ForeignKeyConstraint(['setting_id'], ['presentation.data_entry_settings.id'], ),
+                    sa.ForeignKeyConstraint(
+                        ['item_id'],
+                        ['presentation.data_entry_items.id'], ),
+                    sa.ForeignKeyConstraint(
+                        ['setting_id'],
+                        ['presentation.data_entry_settings.id'], ),
                     schema='presentation'
                     )
     # ### end Alembic commands ###
diff --git a/requirements-dev.txt b/requirements-dev.txt
deleted file mode 100644
index c2a4ff036fb2a3fe762b5289c92b47ddd5aa7d72..0000000000000000000000000000000000000000
--- a/requirements-dev.txt
+++ /dev/null
@@ -1,13 +0,0 @@
--r requirements.txt
-flake8==5.0.4
-flake8-quotes
-isort
-mypy
-pytest
-tox
-types-docutils
-types-jsonschema
-types-Flask-Cors
-types-setuptools
-types-sqlalchemy
-types-flask_migrate
\ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
index 3c691539fab2dc65fd6a0c5b5e194bd58d43df02..ddfa46ce768aab282886a108bf5ee84bee88ef45 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,10 +1,22 @@
 alembic
 jsonschema
-Flask
-Flask-Cors
-Flask-SQLAlchemy
-Flask-Migrate
+flask
+flask-cors
+flask-SQLAlchemy
+flask-Migrate
 psycopg2-binary
-Sphinx
-sphinx-rtd-theme
 SQLAlchemy
+pytest
+pytest-mock
+
+sphinx
+sphinx-rtd-theme
+tox
+
+mypy
+types-docutils
+types-jsonschema
+types-Flask-Cors
+types-setuptools
+types-sqlalchemy
+types-flask_migrate
\ No newline at end of file
diff --git a/tox.ini b/tox.ini
index c5dbcc55dec8f70bcfc98c56e032d85697c82e49..6d5a03b7e37f0561e4790f40b2c2ad8d20fc895e 100644
--- a/tox.ini
+++ b/tox.ini
@@ -3,12 +3,13 @@ envlist = py39
 
 
 [flake8]
-exclude = ./.tox,./webapp,./compendium_v2/migrations,./setup.py
+exclude = venv,.tox,webapp
 
 [testenv]
 deps =
     coverage
-    -r requirements-dev.txt
+    flake8
+    -r requirements.txt
 
 commands =
     coverage erase
@@ -17,7 +18,6 @@ commands =
     coverage html
     coverage report --fail-under 85
     flake8
-    isort -c --df compendium_v2 docs/source test
     # Disable mypy in tox until build server supports python 3.9
 #    mypy .
     sphinx-build -M html docs/source docs/build