diff --git a/app_homepage/__pycache__/models.cpython-37.pyc b/app_homepage/__pycache__/models.cpython-37.pyc
index 03d012f4a9ceb0c1e8cbc9a817275a58a0fdd430..711d89f975eda38b159e312355ecb0e4b2315710 100644
Binary files a/app_homepage/__pycache__/models.cpython-37.pyc and b/app_homepage/__pycache__/models.cpython-37.pyc differ
diff --git a/app_homepage/__pycache__/tests.cpython-37.pyc b/app_homepage/__pycache__/tests.cpython-37.pyc
index 23cbcbd01366cdc3d5e085a37fc661584facbb10..b697218bc8188e54c688ed4d1882d24a1cd74186 100644
Binary files a/app_homepage/__pycache__/tests.cpython-37.pyc and b/app_homepage/__pycache__/tests.cpython-37.pyc differ
diff --git a/app_homepage/__pycache__/views.cpython-37.pyc b/app_homepage/__pycache__/views.cpython-37.pyc
index ca07c81cb9d3f1d7f0ab1a1d954deb95f2cf32fe..97f8d89704adc73e03d6ae56ddb2132615dc18fa 100644
Binary files a/app_homepage/__pycache__/views.cpython-37.pyc and b/app_homepage/__pycache__/views.cpython-37.pyc differ
diff --git a/app_homepage/migrations/0003_list.py b/app_homepage/migrations/0003_list.py
new file mode 100644
index 0000000000000000000000000000000000000000..49253cf01b81f9a1df584c40a89f4079c81bf816
--- /dev/null
+++ b/app_homepage/migrations/0003_list.py
@@ -0,0 +1,19 @@
+# Generated by Django 2.2.1 on 2019-10-10 03:32
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('app_homepage', '0002_item_text'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='List',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+            ],
+        ),
+    ]
diff --git a/app_homepage/migrations/0004_item_list.py b/app_homepage/migrations/0004_item_list.py
new file mode 100644
index 0000000000000000000000000000000000000000..ad00e65f1c53b44aca0c0b915141962a5421b280
--- /dev/null
+++ b/app_homepage/migrations/0004_item_list.py
@@ -0,0 +1,19 @@
+# Generated by Django 2.2.1 on 2019-10-10 03:40
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('app_homepage', '0003_list'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='item',
+            name='list',
+            field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='app_homepage.List'),
+        ),
+    ]
diff --git a/app_homepage/migrations/__pycache__/0003_list.cpython-37.pyc b/app_homepage/migrations/__pycache__/0003_list.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..b1344b72f610c862f78f5042143576b68613faa2
Binary files /dev/null and b/app_homepage/migrations/__pycache__/0003_list.cpython-37.pyc differ
diff --git a/app_homepage/migrations/__pycache__/0004_item_list.cpython-37.pyc b/app_homepage/migrations/__pycache__/0004_item_list.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..e3b6d39860a2c896a045878d5a8723638fed8e78
Binary files /dev/null and b/app_homepage/migrations/__pycache__/0004_item_list.cpython-37.pyc differ
diff --git a/app_homepage/migrations/__pycache__/0005_auto_20191010_1037.cpython-37.pyc b/app_homepage/migrations/__pycache__/0005_auto_20191010_1037.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..8724174a1902e15f75769cbcd629918e31a89cda
Binary files /dev/null and b/app_homepage/migrations/__pycache__/0005_auto_20191010_1037.cpython-37.pyc differ
diff --git a/app_homepage/models.py b/app_homepage/models.py
index 23391689c46e637c88b2f487e5a43f44dbe3faa8..d3e5682ca297dea60aba43944e07dfbdcdd37e4d 100644
--- a/app_homepage/models.py
+++ b/app_homepage/models.py
@@ -1,4 +1,9 @@
 from django.db import models
 
+class List(models.Model):
+	pass	
+
 class Item(models.Model):
     text = models.TextField(default = '')
+    list = models.ForeignKey(List,  default = None, on_delete = models.CASCADE)
+
diff --git a/app_homepage/tests.py b/app_homepage/tests.py
index 839b881db21fb2b1bc7269fd33d6bdee12026ae0..ecf5428a91aad67a18a9643d1878f05d05583d78 100644
--- a/app_homepage/tests.py
+++ b/app_homepage/tests.py
@@ -2,7 +2,7 @@ from django.test import TestCase
 from django.urls import resolve
 from django.http import HttpRequest
 from .views import home_page
-from .models import Item
+from .models import Item, List
 from django.template.loader import render_to_string
 
 # Create your tests here.
@@ -13,7 +13,7 @@ class HomePageTest(TestCase):
 	    self.assertTemplateUsed(response, 'app/home.html')
 
 	def test_can_save_a_POST_request(self):
-		response = self.client.post('/', data={'item_text':'A new list item'})
+		response = self.client.post('/lists/new', data={'item_text':'A new list item'})
 		self.assertEqual(Item.objects.count(),1)
 		new_item = Item.objects.first()
 		self.assertEqual(new_item.text, 'A new list item')
@@ -43,24 +43,34 @@ class HomePageTest(TestCase):
 	# 	self.assertIn('oh tidak', response.content.decode())
 
 
-class ItemModelTest(TestCase):
+class ListAndItemModelTest(TestCase):
 
 	def test_saving_and_retrieving_items(self):
+		list_ = List()
+		list_.save()
+
 		first_item = Item()
 		first_item.text = 'The first (ever) list item'
+		first_item.list = list_
 		first_item.save()
 
 		second_item = Item()
 		second_item.text = 'Item the second'
+		second_item.list = list_
 		second_item.save()
 
+		saved_list = List.objects.first()
+		self.assertEqual(saved_list, list_)
+
 		saved_items = Item.objects.all()
 		self.assertEqual(saved_items.count(), 2)
 
 		first_saved_item = saved_items[0]
 		second_saved_item = saved_items[1]
 		self.assertEqual(first_saved_item.text, 'The first (ever) list item')
+		self.assertEqual(first_saved_item.list, list_)
 		self.assertEqual(second_saved_item.text, 'Item the second')
+		self.assertEqual(second_saved_item.list, list_)
 
 class ListViewTest(TestCase):
 
@@ -69,10 +79,11 @@ class ListViewTest(TestCase):
 		self.assertTemplateUsed(response, 'app/list.html')
 
 	def test_displays_all_items(self):
+		list_ = List.objects.create()
 
-		Item.objects.create(text='itemey 1')
+		Item.objects.create(text='itemey 1', list = list_)
 
-		Item.objects.create(text='itemey 2')
+		Item.objects.create(text='itemey 2', list = list_)
 		response = self.client.get('/lists/the-only-list-in-the-world/')
 		self.assertContains(response, 'itemey 1')  
 
diff --git a/app_homepage/views.py b/app_homepage/views.py
index f106a55ba0dc92ef13734200079332591a1ed0ca..48700c65d6c61f5811ad009d72622c031c53ae2f 100644
--- a/app_homepage/views.py
+++ b/app_homepage/views.py
@@ -1,6 +1,6 @@
 from django.shortcuts import render, redirect
 from django.http import HttpResponse
-from .models import Item
+from .models import Item, List
 
 # Create your views here.
 def home_page(request):
@@ -19,5 +19,6 @@ def view_list(request):
     return render(request, 'app/list.html', {'items': items})
 
 def new_list(request):
-    Item.objects.create(text=request.POST['item_text'])
-    return redirect('/lists/the-only-list-in-the-world/')
\ No newline at end of file
+	list_ = List.objects.create()
+	Item.objects.create(text=request.POST['item_text'], list=list_)
+	return redirect('/lists/the-only-list-in-the-world/')
\ No newline at end of file
diff --git a/db.sqlite3 b/db.sqlite3
index 0e00fda6995599cfff00e6771ba161d1593d94c7..45ba44c2a0b385b625e774afb607e0f4698c4a8f 100644
Binary files a/db.sqlite3 and b/db.sqlite3 differ