diff --git a/model/src/main/java/com/sho/masegi/model/Event.kt b/model/src/main/java/com/sho/masegi/model/Event.kt
new file mode 100644
index 0000000..660ccad
--- /dev/null
+++ b/model/src/main/java/com/sho/masegi/model/Event.kt
@@ -0,0 +1,13 @@
+package com.sho.masegi.model
+
+import java.util.*
+
+typealias EventId = String
+
+data class Event(
+    val id: EventId,
+    val type: String,
+    val actor: User,
+    val repo: RepoLink,
+    val createdAt: Date
+)
diff --git a/model/src/main/java/com/sho/masegi/model/RepoLink.kt b/model/src/main/java/com/sho/masegi/model/RepoLink.kt
new file mode 100644
index 0000000..945cf8f
--- /dev/null
+++ b/model/src/main/java/com/sho/masegi/model/RepoLink.kt
@@ -0,0 +1,9 @@
+package com.sho.masegi.model
+
+import java.net.URL
+
+data class RepoLink(
+    val id: RepositoryId,
+    val name: String,
+    val url: URL
+)
\ No newline at end of file
diff --git a/model/src/main/java/com/sho/masegi/model/Repository.kt b/model/src/main/java/com/sho/masegi/model/Repository.kt
new file mode 100644
index 0000000..c15b637
--- /dev/null
+++ b/model/src/main/java/com/sho/masegi/model/Repository.kt
@@ -0,0 +1,23 @@
+package com.sho.masegi.model
+
+import java.net.URL
+import java.util.Date
+
+typealias RepositoryId = Long
+
+data class Repository(
+    val id: RepositoryId,
+    val name: String,
+    val fullName: String,
+    val owner: User,
+    val url: URL,
+    val forksCount: Int,
+    val openIssuesCount: Int,
+    val watchersCount: Int,
+    val stargazersCount: Int,
+    val language: String?,
+    val createdAt: Date,
+    val updatedAt: Date,
+    val `private`: Boolean,
+    val description: String?
+    )
diff --git a/model/src/main/java/com/sho/masegi/model/User.kt b/model/src/main/java/com/sho/masegi/model/User.kt
index 420ed8e..436d2f7 100644
--- a/model/src/main/java/com/sho/masegi/model/User.kt
+++ b/model/src/main/java/com/sho/masegi/model/User.kt
@@ -1,6 +1,13 @@
 package com.sho.masegi.model
 
+import java.net.URL
+
+typealias UserId = Long
+
 data class User(
-    val id: Int,
-    val name: String
+    val id: UserId,
+    val login: String,
+    val displayLogin: String?,
+    val url: URL,
+    val avatarUrl: URL
 )
\ No newline at end of file