diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/MainActivity.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/MainActivity.java
index abc29931d2ab40e85c7f49c796126d6b4f1816ff..6b2c6d42ba3bbaa689dbb08c842cbc2e44e78129 100644
--- a/app/src/main/java/com/ireallydontcare/viet/posseidon/MainActivity.java
+++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/MainActivity.java
@@ -1,5 +1,6 @@
 package com.ireallydontcare.viet.posseidon;
 
+import android.arch.persistence.room.Room;
 import android.content.Intent;
 import android.os.AsyncTask;
 import android.os.Bundle;
@@ -8,20 +9,25 @@ import android.support.v7.app.AppCompatActivity;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.support.v7.widget.Toolbar;
+import android.util.Log;
 import android.view.View;
 import android.view.Menu;
 import android.view.MenuItem;
 
 import com.ireallydontcare.viet.posseidon.adapter.SubjectAdapter;
+import com.ireallydontcare.viet.posseidon.data.SubjectDatabase;
 import com.ireallydontcare.viet.posseidon.fragments.NewDialogSubjectFragment;
 import com.ireallydontcare.viet.posseidon.model.Subject;
 
+import java.util.List;
+
 public class MainActivity extends AppCompatActivity
         implements NewDialogSubjectFragment.NewSubjectDialogListener, SubjectAdapter.OnSubjectSelectedListener{
 
     private RecyclerView subjectRecyclerView;
     private SubjectAdapter subjectAdapter;
     private RecyclerView.LayoutManager subjectLayoutManager;
+    private SubjectDatabase database;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -39,20 +45,31 @@ public class MainActivity extends AppCompatActivity
             }
         });
 
+        database = Room.databaseBuilder(
+                getApplicationContext(),
+                SubjectDatabase.class,
+                "subject-list"
+        ).build();
+
+
         subjectRecyclerView = (RecyclerView) findViewById(R.id.SubjectRecyclerView);
 
         // use this setting to improve performance if you know that changes
         // in content do not change the layout size of the RecyclerView
         subjectRecyclerView.setHasFixedSize(true);
 
+        loadItemsInBackground();
         // use a linear layout manager
         subjectLayoutManager = new LinearLayoutManager(this);
+
+
         subjectRecyclerView.setLayoutManager(subjectLayoutManager);
 
         // specify an adapter (see also next example)
         subjectAdapter = new SubjectAdapter(this);
 
         subjectRecyclerView.setAdapter(subjectAdapter);
+
     }
 
     @Override
@@ -90,14 +107,30 @@ public class MainActivity extends AppCompatActivity
 
             @Override
             protected Subject doInBackground(Void... voids) {
+                newItem.id = database.SubjectDao().insert(newItem);
                                 return newItem;
                             }
 
             @Override
-            protected void onPostExecute(Subject shoppingItem) {
-                                subjectAdapter.addItem(shoppingItem);
+            protected void onPostExecute(Subject subject) {
+                                subjectAdapter.addItem(subject);
                            }
         }.execute();
     };
 
+    private void loadItemsInBackground(){
+        new AsyncTask<Void, Void, List<Subject>>() {
+
+            @Override
+            protected List<Subject> doInBackground(Void... voids) {
+                return database.SubjectDao().getAll();
+            }
+
+            @Override
+            protected void onPostExecute(List<Subject> subjects) {
+                subjectAdapter.update(subjects);
+            }
+        }.execute();
+    }
+
 }
diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/SubjectActivity.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/SubjectActivity.java
index ffb22e31a8297c3b4e9dc9ec1aedc3f7e21a89eb..0d7fa896502de0204e949c91d4c45ae00106ebe8 100644
--- a/app/src/main/java/com/ireallydontcare/viet/posseidon/SubjectActivity.java
+++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/SubjectActivity.java
@@ -7,8 +7,14 @@ import android.support.v7.app.AppCompatActivity;
 import android.support.v7.widget.Toolbar;
 import android.view.View;
 
+import com.ireallydontcare.viet.posseidon.model.Subject;
+
 public class SubjectActivity extends AppCompatActivity {
 
+
+    public static final String SUBJECT_OBJECT_ID= "subject_object_ID";
+
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -24,6 +30,7 @@ public class SubjectActivity extends AppCompatActivity {
                         .setAction("Action", null).show();
             }
         });
+
     }
 
 }
diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/adapter/SubjectAdapter.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/adapter/SubjectAdapter.java
index f70c9f8a3b5dd88fef6e6652f9db9b8630a3546b..3db2b6c1ccedee7eaaf2e524eb6f32a685f7ebf7 100644
--- a/app/src/main/java/com/ireallydontcare/viet/posseidon/adapter/SubjectAdapter.java
+++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/adapter/SubjectAdapter.java
@@ -51,6 +51,12 @@ public class SubjectAdapter extends RecyclerView.Adapter<SubjectAdapter.SubjectV
 
     }
 
+    public void update(List<Subject> subjects){
+        this.subjects.clear();
+        this.subjects.addAll(subjects);
+        notifyDataSetChanged();
+    }
+
     @Override
     public int getItemCount() {
             return subjects.size();
diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/data/EventDao.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/data/EventDao.java
new file mode 100644
index 0000000000000000000000000000000000000000..da90d7ba376822b4f2b54c179ca221c8febea158
--- /dev/null
+++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/data/EventDao.java
@@ -0,0 +1,27 @@
+package com.ireallydontcare.viet.posseidon.data;
+
+import android.arch.persistence.room.Dao;
+import android.arch.persistence.room.Delete;
+import android.arch.persistence.room.Insert;
+import android.arch.persistence.room.Query;
+import android.arch.persistence.room.Update;
+
+import com.ireallydontcare.viet.posseidon.model.Subject;
+
+import java.util.List;
+
+@Dao
+public interface EventDao {
+
+    @Query("SELECT * FROM subjectitem")
+    List<Subject> getAll();
+
+    @Insert
+    long insert(Subject subjectitem);
+
+    @Update
+    void update(Subject subjectitem);
+
+    @Delete
+    void deleteItem(Subject subjectitem);
+}
diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/data/SubjectDao.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/data/SubjectDao.java
new file mode 100644
index 0000000000000000000000000000000000000000..bfb1ecba6a23c37ca6d114c1deb9d8ca5eb3491d
--- /dev/null
+++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/data/SubjectDao.java
@@ -0,0 +1,27 @@
+package com.ireallydontcare.viet.posseidon.data;
+
+import android.arch.persistence.room.Dao;
+import android.arch.persistence.room.Delete;
+import android.arch.persistence.room.Insert;
+import android.arch.persistence.room.Query;
+import android.arch.persistence.room.Update;
+
+import com.ireallydontcare.viet.posseidon.model.Subject;
+
+import java.util.List;
+
+@Dao
+public interface SubjectDao {
+
+    @Query("SELECT * FROM subjectitem")
+    List<Subject> getAll();
+
+    @Insert
+    long insert(Subject subjectitem);
+
+    @Update
+    void update(Subject subjectitem);
+
+    @Delete
+    void deleteItem(Subject subjectitem);
+}
diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/data/SubjectDatabase.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/data/SubjectDatabase.java
new file mode 100644
index 0000000000000000000000000000000000000000..a0ab0f595e7bf27ce29ed00b0857e9046bbf7f30
--- /dev/null
+++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/data/SubjectDatabase.java
@@ -0,0 +1,16 @@
+package com.ireallydontcare.viet.posseidon.data;
+
+
+import android.arch.persistence.room.Database;
+import android.arch.persistence.room.RoomDatabase;
+
+
+import com.ireallydontcare.viet.posseidon.model.Subject;
+
+@Database(
+        entities = {Subject.class},
+        version = 1
+)
+public abstract class SubjectDatabase extends RoomDatabase {
+    public abstract SubjectDao SubjectDao();
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Event.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Event.java
index f4b2a7158b1444f6eea9be216c356eacfc461e0b..cab81aa0d0236e1acee8cfe5ab9befe220d3aa97 100644
--- a/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Event.java
+++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Event.java
@@ -1,4 +1,27 @@
 package com.ireallydontcare.viet.posseidon.model;
 
+import android.arch.persistence.room.ColumnInfo;
+import android.arch.persistence.room.Entity;
+import android.arch.persistence.room.PrimaryKey;
+import android.arch.persistence.room.TypeConverter;
+
+import java.util.Date;
+
+
+@Entity(tableName = "eventItem")
 public class Event {
+
+    @ColumnInfo(name = "date")
+    Date time;
+
+    @ColumnInfo(name = "subjectid")
+    Long SubjectId;
+
+    @ColumnInfo(name = "eventid")
+    @PrimaryKey(autoGenerate = true)
+    public Long id;
+
+    @ColumnInfo(name = "type")
+    public String type;
+
 }
diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Subject.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Subject.java
index 82826e62f58c65b19bad528e0141accdc7e8c6ed..bb2c484e5fe24276ef0320bfa55284dc3009cd65 100644
--- a/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Subject.java
+++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Subject.java
@@ -6,9 +6,14 @@ import android.arch.persistence.room.Entity;
 import android.arch.persistence.room.PrimaryKey;
 import android.arch.persistence.room.TypeConverter;
 
+import java.util.ArrayList;
+import java.util.List;
+
 @Entity(tableName = "subjectitem")
 public class Subject {
 
+
+
     @ColumnInfo(name = "id")
     @PrimaryKey(autoGenerate = true)
     public Long id;
@@ -22,7 +27,6 @@ public class Subject {
     @ColumnInfo(name = "description")
     public String description;
 
-
     @ColumnInfo(name="credit")
     public int credit;
 }