diff --git a/diner.py b/diner.py
index c0ad745f0d539da4ec00b956cd2a8734c160aa0c..517b68269266e8557ee8d6332de91a43e99019c1 100644
--- a/diner.py
+++ b/diner.py
@@ -15,6 +15,7 @@ class Menu(Persisted):
     __tablename__ = 'menus'
     menu_id = Column(Integer, primary_key=True)  # primary keys default to auto_increment
     name = Column(String(256), nullable=False)  # nullable is the default
+    items = relationship('Item', uselist=True, back_populates='menu')
 
 
 class Item(Persisted):
@@ -24,12 +25,17 @@ class Item(Persisted):
     menu_id = Column(Integer, ForeignKey('menus.menu_id', ondelete='CASCADE'), nullable=False)
     name = Column(String(256), nullable=False)
     price = Column(Integer, nullable=False)
+    menu = relationship('Menu', back_populates='items')
+    order_items = relationship('OrderItem', uselist=True, back_populates='item')
+    orders = relationship('Order', uselist=True, secondary='order_items')
 
 
 class Order(Persisted):
     __tablename__ = 'orders'
     order_id = Column(Integer, primary_key=True)
     timestamp = Column(DateTime)
+    order_items = relationship('OrderItem', uselist=True, back_populates='order')
+    items = relationship('Item', uselist=True, secondary='order_items')
 
 
 class OrderItem(Persisted):
@@ -37,6 +43,8 @@ class OrderItem(Persisted):
     order_id = Column(Integer, ForeignKey('orders.order_id', ondelete='CASCADE'), primary_key=True)
     item_id = Column(Integer, ForeignKey('items.item_id', ondelete='CASCADE'), primary_key=True)
     amount = Column(Integer)
+    item = relationship('Item', back_populates='order_items')
+    order = relationship('Order', back_populates='order_items')
 
 
 class DinerDatabase(object):
diff --git a/diner_installer.py b/diner_installer.py
index cbca8115e873b5e33e1f46a7befb0427243f300c..a39e145385074cb2a429feb9fe7cde20a9a282be 100644
--- a/diner_installer.py
+++ b/diner_installer.py
@@ -30,13 +30,13 @@ def main():
         diner_database = DinerDatabase(url)
         diner_database.ensure_tables_exist()
         print('Tables created.')
-        # session = diner_database.create_session()
-        # if already_has_data(session):
-        #     print('Not creating records because some already exist.')
-        # else:
-        #     add_starter_data(session)
-        #     session.commit()
-        #     print('Records created.')
+        session = diner_database.create_session()
+        if already_has_data(session):
+            print('Not creating records because some already exist.')
+        else:
+            add_starter_data(session)
+            session.commit()
+            print('Records created.')
     except SQLAlchemyError as exception:
         print('Database setup failed!', file=stderr)
         print(f'Cause: {exception}', file=stderr)