diff --git a/brewman/models/master.py b/brewman/models/master.py
index 61ba86c0..63d3a3af 100644
--- a/brewman/models/master.py
+++ b/brewman/models/master.py
@@ -10,11 +10,10 @@ from sqlalchemy import (
     Boolean,
     ForeignKey,
     func,
-    DateTime,
     PickleType,
     Date,
 )
-from sqlalchemy.orm import relationship
+from sqlalchemy.orm import relationship, Session
 
 from brewman.models.guidtype import GUID
 from .meta import Base
@@ -60,7 +59,7 @@ class Product(Base):
         is_active=None,
         is_purchased=None,
         is_sold=None,
-        id=None,
+        id_=None,
         is_fixture=False,
     ):
         self.code = code
@@ -76,20 +75,17 @@ class Product(Base):
         self.is_active = is_active
         self.is_purchased = is_purchased
         self.is_sold = is_sold
-        self.id = id
+        self.id = id_
         self.is_fixture = is_fixture
 
     @property
     def full_name(self):
         return "{0} ({1})".format(self.name, self.units)
 
-    def create(self, dbsession):
-        code = dbsession.query(func.max(Product.code)).one()[0]
-        if code is None:
-            self.code = 1
-        else:
-            self.code = code + 1
-        dbsession.add(self)
+    def create(self, db: Session):
+        code = db.query(func.max(Product.code)).one()[0]
+        self.code = 1 if code is None else code + 1
+        db.add(self)
         return self
 
     def can_delete(self, advanced_delete):
@@ -148,7 +144,7 @@ class Recipe(Base):
         valid_to=None,
         notes=None,
         effective_from=None,
-        id=None,
+        id_=None,
     ):
         self.product_id = product_id
         self.quantity = quantity
@@ -159,7 +155,7 @@ class Recipe(Base):
         self.notes = "" if notes is None else notes
         self.effective_from = date.today() if effective_from is None else effective_from
         self.effective_to = None
-        self.id = id
+        self.id = id_
 
 
 class RecipeItem(Base):
@@ -174,12 +170,12 @@ class RecipeItem(Base):
 
     product = relationship("Product")
 
-    def __init__(self, recipe_id=None, product_id=None, quantity=None, price=None, id=None):
+    def __init__(self, recipe_id=None, product_id=None, quantity=None, price=None, id_=None):
         self.recipe_id = recipe_id
         self.product_id = product_id
         self.quantity = quantity
         self.price = price
-        self.id = id
+        self.id = id_
 
 
 class ProductGroup(Base):
@@ -191,9 +187,9 @@ class ProductGroup(Base):
 
     products = relationship("Product", backref="product_group")
 
-    def __init__(self, name=None, id=None, is_fixture=False):
+    def __init__(self, name=None, id_=None, is_fixture=False):
         self.name = name
-        self.id = id
+        self.id = id_
         self.is_fixture = is_fixture
 
     @classmethod
@@ -219,9 +215,9 @@ class CostCentre(Base):
     def __name__(self):
         return self.name
 
-    def __init__(self, name=None, id=None, is_fixture=False):
+    def __init__(self, name=None, id_=None, is_fixture=False):
         self.name = name
-        self.id = id
+        self.id = id_
         self.is_fixture = is_fixture
 
     @classmethod
@@ -274,22 +270,22 @@ class AccountBase(Base):
         self,
         code=None,
         name=None,
-        type=None,
+        type_=None,
         is_starred=None,
         is_active=None,
         is_reconcilable=False,
         cost_centre_id=None,
-        id=None,
+        id_=None,
         is_fixture=False,
     ):
         self.code = code
         self.name = name
-        self.type = type
+        self.type = type_
         self.is_starred = is_starred
         self.is_active = is_active
         self.is_reconcilable = is_reconcilable
         self.cost_centre_id = cost_centre_id
-        self.id = id
+        self.id = id_
         self.is_fixture = is_fixture
 
     @classmethod
@@ -308,21 +304,15 @@ class AccountBase(Base):
                 query_ = query_.filter(cls.name.ilike("%" + item + "%"))
         return query_.order_by(cls.name)
 
-    def create(self, dbsession):
-        code = dbsession.query(func.max(AccountBase.code)).filter(AccountBase.type == self.type).one()[0]
-        if code is None:
-            self.code = 1
-        else:
-            self.code = code + 1
-        dbsession.add(self)
+    def create(self, db: Session):
+        code = db.query(func.max(AccountBase.code)).filter(AccountBase.type == self.type).one()[0]
+        self.code = 1 if code is None else code + 1
+        db.add(self)
         return self
 
     def can_delete(self, advanced_delete):
         if self.is_fixture:
-            return (
-                False,
-                "{0} is a fixture and cannot be edited or deleted.".format(self.name),
-            )
+            return False, f"{self.name} is a fixture and cannot be edited or deleted."
         if self.is_active:
             return False, "Account is active"
         if len(self.journals) > 0 and not advanced_delete:
@@ -330,8 +320,8 @@ class AccountBase(Base):
         return True, ""
 
     @classmethod
-    def get_code(cls, type, dbsession):
-        code = dbsession.query(func.max(AccountBase.code)).filter(AccountBase.type == type).one()[0]
+    def get_code(cls, type_, db: Session):
+        code = db.query(func.max(AccountBase.code)).filter(AccountBase.type == type_).one()[0]
         return 1 if code is None else code + 1
 
     @classmethod
@@ -410,21 +400,18 @@ class Employee(AccountBase):
         super().__init__(
             code=code,
             name=name,
-            type=10,
+            type_=10,
             is_starred=is_starred,
             is_active=is_active,
             is_reconcilable=False,
             cost_centre_id=cost_centre_id,
         )
 
-    def create(self, dbsession):
-        code = dbsession.query(func.max(AccountBase.code)).filter(AccountBase.type == self.type).one()[0]
-        if code is None:
-            self.code = 1
-        else:
-            self.code = code + 1
-        self.name += " (" + str(self.code) + ")"
-        dbsession.add(self)
+    def create(self, db: Session):
+        code = db.query(func.max(AccountBase.code)).filter(AccountBase.type == self.type).one()[0]
+        self.code = 1 if code in None else code + 1
+        self.name += f" ({str(self.code)})"
+        db.add(self)
         return self
 
     def can_delete(self, advanced_delete):
@@ -466,24 +453,18 @@ class AttendanceType:
 
     @classmethod
     def by_name(cls, name):
-        list = cls.list()
-        for item in list:
-            if item.name == name:
-                return item
+        next(i for i in cls.list() if i.name == name)
 
     @classmethod
-    def by_id(cls, id):
-        list = cls.list()
-        for item in list:
-            if item.id == id:
-                return item
+    def by_id(cls, id_):
+        next(i for i in cls.list() if i.id == id_)
 
 
 class AccountType:
     def __init__(
-        self, id, name, balance_sheet=None, debit=None, cash_flow_classification=None, order=None, show_in_list=None,
+        self, id_, name, balance_sheet=None, debit=None, cash_flow_classification=None, order=None, show_in_list=None,
     ):
-        self.id = id
+        self.id = id_
         self.name = name
         self.balance_sheet = balance_sheet
         self.debit = debit
@@ -498,7 +479,7 @@ class AccountType:
 
     @classmethod
     def list(cls):
-        list = [
+        return [
             AccountType(1, "Cash", True, True, "Cash", 10, True),
             AccountType(2, "Purchase", False, True, "Operating", 20, True),
             AccountType(3, "Sale", False, False, "Operating", 10, True),
@@ -515,21 +496,14 @@ class AccountType:
         # list.append(AccountType(8, 'Discount', False, False, True, 30, True))
         #        list.append(AccountType(14, 'Total', False, False, False, 900, False))
         #        list.append(AccountType(15, 'Net', False, False, False, 1000, False))
-        return list
 
     @classmethod
     def by_name(cls, name):
-        list = cls.list()
-        for item in list:
-            if item.name == name:
-                return item
+        next(i for i in cls.list() if i.name == name)
 
     @classmethod
-    def by_id(cls, id):
-        list = cls.list()
-        for item in list:
-            if item.id == id:
-                return item
+    def by_id(cls, id_):
+        next(i for i in cls.list() if i.id == id_)
 
 
 class DbSetting(Base):
@@ -539,7 +513,7 @@ class DbSetting(Base):
     name = Column("name", Unicode(255), unique=True, nullable=False)
     data = Column("data", PickleType)
 
-    def __init__(self, id=None, name=None, data=None):
-        self.id = id
+    def __init__(self, id_=None, name=None, data=None):
+        self.id = id_
         self.name = name
         self.data = data
diff --git a/brewman/models/voucher.py b/brewman/models/voucher.py
index a3f488a8..0214e8e5 100644
--- a/brewman/models/voucher.py
+++ b/brewman/models/voucher.py
@@ -196,14 +196,15 @@ class EmployeeBenefit(Base):
     ):
         self.id = id_
         self.voucher_id = voucher_id
-        self.journal_id = journal_id
         self.gross_salary = gross_salary
         self.days_worked = days_worked
         self.esi_ee = esi_ee
         self.pf_ee = pf_ee
         self.esi_er = esi_er
         self.pf_er = pf_er
-        if journal_id is None and journal is not None:
+        if journal is None:
+            self.journal_id = journal_id
+        else:
             self.journal = journal
 
 
@@ -224,9 +225,10 @@ class Incentive(Base):
         self.voucher_id = voucher_id
         if journal is None:
             self.journal_id = journal_id
+        else:
+            self.journal = journal
         self.days_worked = days_worked
         self.points = points
-        self.journal = journal
 
 
 class Inventory(Base):
@@ -260,14 +262,16 @@ class Inventory(Base):
         self.voucher_id = voucher_id
         if product is None:
             self.product_id = product_id
+        else:
+            self.product = product
         if batch is None:
             self.batch_id = batch_id
+        else:
+            self.batch = batch
         self.quantity = quantity
         self.rate = rate
         self.tax = tax
         self.discount = discount
-        self.batch = batch
-        self.product = product
 
     @hybrid_property
     def amount(self):
@@ -298,7 +302,8 @@ class Batch(Base):
         self.discount = discount
         if product is None:
             self.product_id = product_id
-        self.product = product
+        else:
+            self.product = product
 
     def amount(self):
         return self.quantity_remaining * self.rate * (1 + self.tax) * (1 - self.discount)
@@ -364,7 +369,7 @@ class Attendance(Base):
         if old is None or old.attendance_type != self.attendance_type:
             if old is not None:
                 old.is_valid = False
-            dbsession.add(self)
+            db.add(self)
 
 
 class Fingerprint(Base):
@@ -374,8 +379,8 @@ class Fingerprint(Base):
     employee_id = Column("employee_id", GUID(), ForeignKey("employees.id"))
     date = Column("date", DateTime)
 
-    def __init__(self, id=None, employee_id=None, date=None):
-        self.id = id
+    def __init__(self, id_=None, employee_id=None, date=None):
+        self.id = id_
         self.employee_id = employee_id
         self.date = date
         self.fingerprint_type = 0
diff --git a/brewman/routers/rebase.py b/brewman/routers/rebase.py
index 37915d37..18c136e6 100644
--- a/brewman/routers/rebase.py
+++ b/brewman/routers/rebase.py
@@ -44,6 +44,7 @@ def rebase(
     db.add(voucher_l)
     for j in voucher_l.journals:
         db.add(j)
+    db.flush()
     db.add(voucher_b)
     for j in voucher_b.journals:
         db.add(j)
@@ -86,6 +87,10 @@ def save_starred(date_: date, db: Session):
         for other in others:
             if voucher.type != VoucherType.by_name("Opening Accounts").id:
                 voucher.narration += f"\nSuspense \u20B9{other.amount:,.2f} is {other.account.name}"
+            if other.employee_benefit:
+                db.delete(other.employee_benefit)
+            if other.incentive:
+                db.delete(other.incentive)
             db.delete(other)
         voucher.type = VoucherType.by_name("Journal")
         if len(voucher.narration) >= 1000:
diff --git a/overlord/package.json b/overlord/package.json
index e1c3eae3..56bcff26 100644
--- a/overlord/package.json
+++ b/overlord/package.json
@@ -1,6 +1,6 @@
 {
   "name": "overlord",
-  "version": "7.0.0",
+  "version": "7.0.1",
   "scripts": {
     "ng": "ng",
     "start": "ng serve",
diff --git a/setup.py b/setup.py
index 645c3a40..7a64acee 100644
--- a/setup.py
+++ b/setup.py
@@ -11,7 +11,7 @@ with open(os.path.join(here, 'requirements.txt'), "r") as r:
     requires = r.read().splitlines()
 
 setup(name='brewman',
-      version='7.0',
+      version='7.0.1',
       description='brewman',
       long_description=README + '\n\n' + CHANGES,
       classifiers=[