diff --git a/enzevalos_iphone.xcodeproj/project.pbxproj b/enzevalos_iphone.xcodeproj/project.pbxproj
index 568990edf3edf69bb8bc36b2842d46db68a2e534..b36c8f7c8e09beb0f0af269411c8e407db68dca9 100644
--- a/enzevalos_iphone.xcodeproj/project.pbxproj
+++ b/enzevalos_iphone.xcodeproj/project.pbxproj
@@ -23,6 +23,7 @@
 		0EF73F4324237E6500932FA0 /* SMIMEHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EF73F4224237E6500932FA0 /* SMIMEHelpers.swift */; };
 		0EFEF0952417C0B400BB2FF7 /* CHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEF0942417C0B400BB2FF7 /* CHelpers.swift */; };
 		12680CE3CA4B14F980A48941 /* Pods_enzevalos_iphone.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F2D682FEE7B85A09D7E4650 /* Pods_enzevalos_iphone.framework */; };
+		32261743260C7CE60068CBD4 /* ContactMailListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32261742260C7CE60068CBD4 /* ContactMailListView.swift */; };
 		3E6B07DE2011246500E49609 /* invitationText.html in Resources */ = {isa = PBXBuildFile; fileRef = 3E6B07DD2011246500E49609 /* invitationText.html */; };
 		3EB4FAA420120096001D0625 /* DialogOption.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EB4FAA320120096001D0625 /* DialogOption.swift */; };
 		3EC35F2420037651008BDF95 /* InvitationHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EC35F2320037651008BDF95 /* InvitationHelper.swift */; };
@@ -83,7 +84,6 @@
 		476EEF9922A872BF00BB4EF7 /* enzevalos_iphoneUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 476EEF9822A872BF00BB4EF7 /* enzevalos_iphoneUITests.swift */; };
 		476EEFA122A873A800BB4EF7 /* OnboardingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 476EEFA022A873A800BB4EF7 /* OnboardingTest.swift */; };
 		476EEFA722A87B9800BB4EF7 /* accounts.json in Resources */ = {isa = PBXBuildFile; fileRef = 476EEFA622A87B9800BB4EF7 /* accounts.json */; };
-		477120A8254C289B00B28C64 /* ContactTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 477120A7254C289B00B28C64 /* ContactTabView.swift */; };
 		477120AE254C28F900B28C64 /* TabSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 477120AD254C28F900B28C64 /* TabSupport.swift */; };
 		477120BC254C401E00B28C64 /* AddressRecord+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 477120BB254C401E00B28C64 /* AddressRecord+CoreDataProperties.swift */; };
 		477120C2254C676000B28C64 /* ContactView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 477120C1254C676000B28C64 /* ContactView.swift */; };
@@ -297,6 +297,7 @@
 		0EF73F4224237E6500932FA0 /* SMIMEHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SMIMEHelpers.swift; sourceTree = "<group>"; };
 		0EFEF0942417C0B400BB2FF7 /* CHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CHelpers.swift; sourceTree = "<group>"; };
 		101F3BA8A4325D747C9721A1 /* Pods-enzevalos_iphoneTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-enzevalos_iphoneTests.debug.xcconfig"; path = "Target Support Files/Pods-enzevalos_iphoneTests/Pods-enzevalos_iphoneTests.debug.xcconfig"; sourceTree = "<group>"; };
+		32261742260C7CE60068CBD4 /* ContactMailListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactMailListView.swift; sourceTree = "<group>"; };
 		3E6B07DD2011246500E49609 /* invitationText.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = invitationText.html; path = Invitation/invitationText.html; sourceTree = "<group>"; };
 		3E9708AD1FAC925D005825C9 /* enzevalos_iphone.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = enzevalos_iphone.entitlements; sourceTree = "<group>"; };
 		3E9708AE1FAC925D005825C9 /* enzevalos-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "enzevalos-Info.plist"; sourceTree = "<group>"; };
@@ -472,7 +473,6 @@
 		476EEF9A22A872BF00BB4EF7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 		476EEFA022A873A800BB4EF7 /* OnboardingTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OnboardingTest.swift; sourceTree = "<group>"; };
 		476EEFA622A87B9800BB4EF7 /* accounts.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = accounts.json; sourceTree = "<group>"; };
-		477120A7254C289B00B28C64 /* ContactTabView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactTabView.swift; sourceTree = "<group>"; };
 		477120AD254C28F900B28C64 /* TabSupport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabSupport.swift; sourceTree = "<group>"; };
 		477120BB254C401E00B28C64 /* AddressRecord+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AddressRecord+CoreDataProperties.swift"; sourceTree = "<group>"; };
 		477120C1254C676000B28C64 /* ContactView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactView.swift; sourceTree = "<group>"; };
@@ -1038,8 +1038,8 @@
 		477120A6254C287B00B28C64 /* Contact */ = {
 			isa = PBXGroup;
 			children = (
-				477120A7254C289B00B28C64 /* ContactTabView.swift */,
 				477120C1254C676000B28C64 /* ContactView.swift */,
+				32261742260C7CE60068CBD4 /* ContactMailListView.swift */,
 			);
 			path = Contact;
 			sourceTree = "<group>";
@@ -1875,7 +1875,6 @@
 			files = (
 				476801DE21846A5A00F7F259 /* OutgoingMail.swift in Sources */,
 				47B71AAF2538354A00CA87C6 /* OnboardingValueState.swift in Sources */,
-				477120A8254C289B00B28C64 /* ContactTabView.swift in Sources */,
 				47BCAF2A259CD5CE0008FE4B /* KeyManagementModel.swift in Sources */,
 				47C09C76243B3395007F74A2 /* SmallContactListView.swift in Sources */,
 				47EABF272423BFDD00774A93 /* AuthenticationScreen.swift in Sources */,
@@ -1922,6 +1921,7 @@
 				47EABF2B2423C20C00774A93 /* LoadingBlocker.swift in Sources */,
 				475B00351F7B9565006CDD41 /* CryptoObject.swift in Sources */,
 				4706D661225CD21D00B3F1D3 /* ExportKeyHelper.swift in Sources */,
+				32261743260C7CE60068CBD4 /* ContactMailListView.swift in Sources */,
 				4775D7B02443539E0052F2CC /* DialogProtocols.swift in Sources */,
 				475B00331F7B9565006CDD41 /* SwiftPGP.swift in Sources */,
 				477548E421F77BA0000B22A8 /* StudyParameterProtocol.swift in Sources */,
diff --git a/enzevalos_iphone.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/enzevalos_iphone.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
new file mode 100644
index 0000000000000000000000000000000000000000..2b3d923d4b7a393c5e30f2d866e022de482c88ae
--- /dev/null
+++ b/enzevalos_iphone.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
@@ -0,0 +1,16 @@
+{
+  "object": {
+    "pins": [
+      {
+        "package": "MailCore2",
+        "repositoryURL": "https://github.com/MailCore/mailcore2",
+        "state": {
+          "branch": "master",
+          "revision": "fad23d736ed5a63cf8321469d3a98a583f55df97",
+          "version": null
+        }
+      }
+    ]
+  },
+  "version": 1
+}
diff --git a/enzevalos_iphone/Assets.xcassets/Contents.json b/enzevalos_iphone/Assets.xcassets/Contents.json
index da4a164c918651cdd1e11dca5cc62c333f097601..73c00596a7fca3f3d4bdd64053b69d86745f9e10 100644
--- a/enzevalos_iphone/Assets.xcassets/Contents.json
+++ b/enzevalos_iphone/Assets.xcassets/Contents.json
@@ -1,6 +1,6 @@
 {
   "info" : {
-    "version" : 1,
-    "author" : "xcode"
+    "author" : "xcode",
+    "version" : 1
   }
-}
\ No newline at end of file
+}
diff --git a/enzevalos_iphone/Assets.xcassets/Emoji/Bob.imageset/Bob.png b/enzevalos_iphone/Assets.xcassets/Emoji/Bob.imageset/Bob.png
new file mode 100644
index 0000000000000000000000000000000000000000..14aa18d366980484d11953602334f7d309526d1c
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/Emoji/Bob.imageset/Bob.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/Emoji/Bob.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/Emoji/Bob.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..52101c069952788e41b9075195e29e2567a92279
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/Emoji/Bob.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "Bob.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/Emoji/Charlie.imageset/Charlie.png b/enzevalos_iphone/Assets.xcassets/Emoji/Charlie.imageset/Charlie.png
new file mode 100644
index 0000000000000000000000000000000000000000..40d7f299dd23737684a80d4c20f43a4e55c460f1
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/Emoji/Charlie.imageset/Charlie.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/Emoji/Charlie.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/Emoji/Charlie.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..0179af56ad3d75b3c08c86f4cd07c03f71eec8cf
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/Emoji/Charlie.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "Charlie.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/Emoji/Contents.json b/enzevalos_iphone/Assets.xcassets/Emoji/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..73c00596a7fca3f3d4bdd64053b69d86745f9e10
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/Emoji/Contents.json
@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/Emoji/Dali.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/Emoji/Dali.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..92701ba28084ee6a528c78a32a3920f94575fb6d
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/Emoji/Dali.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "Dali.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/Emoji/Dali.imageset/Dali.png b/enzevalos_iphone/Assets.xcassets/Emoji/Dali.imageset/Dali.png
new file mode 100644
index 0000000000000000000000000000000000000000..48ced29b177bbf0cc4bb1bf70d07d6451bf86771
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/Emoji/Dali.imageset/Dali.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..73c00596a7fca3f3d4bdd64053b69d86745f9e10
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/Contents.json
@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon0.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon0.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..496e8eb0268227c198956b876ecef28b9085a3cd
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon0.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs106047397033627025.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon0.imageset/cs106047397033627025.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon0.imageset/cs106047397033627025.png
new file mode 100644
index 0000000000000000000000000000000000000000..48e64f12b73d5499247817958f9ec82674ffab3a
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon0.imageset/cs106047397033627025.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon1.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon1.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..4cedc09fe6486b5ac03456955ae4dc30c50b4a0a
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon1.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs1048486361028912.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon1.imageset/cs1048486361028912.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon1.imageset/cs1048486361028912.png
new file mode 100644
index 0000000000000000000000000000000000000000..ad1ac1f654e2e780532742d0173485248d98985d
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon1.imageset/cs1048486361028912.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon10.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon10.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..338db8581f0597c217577ed558ae41c22f9e03bc
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon10.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs11361288859011089.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon10.imageset/cs11361288859011089.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon10.imageset/cs11361288859011089.png
new file mode 100644
index 0000000000000000000000000000000000000000..d505a54998c3f5730effa737086b09409ef58397
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon10.imageset/cs11361288859011089.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon11.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon11.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..b7593b26054e4e53d665b853bdd38ef15b80c09c
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon11.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs11365107979606767.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon11.imageset/cs11365107979606767.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon11.imageset/cs11365107979606767.png
new file mode 100644
index 0000000000000000000000000000000000000000..2312cd74dcd5ea24f05cfa8039bc8f8fa4f060ae
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon11.imageset/cs11365107979606767.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon12.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon12.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..6684493348f6a7b875de71facc2fa47f84567d21
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon12.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs100214067654451312.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon12.imageset/cs100214067654451312.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon12.imageset/cs100214067654451312.png
new file mode 100644
index 0000000000000000000000000000000000000000..96bef50261f112caab347281c7fb28a08cf51dfc
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon12.imageset/cs100214067654451312.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon13.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon13.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..05a8819435bec81b50f2c77f07b483c7db116b42
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon13.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs100279640926771550.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon13.imageset/cs100279640926771550.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon13.imageset/cs100279640926771550.png
new file mode 100644
index 0000000000000000000000000000000000000000..f877df997deb8e22605d5c08ec5aaf72c2c6ca43
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon13.imageset/cs100279640926771550.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon14.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon14.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..0c696b626f520a93a3859db3c788f841f73bf682
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon14.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs100367196602765414.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon14.imageset/cs100367196602765414.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon14.imageset/cs100367196602765414.png
new file mode 100644
index 0000000000000000000000000000000000000000..c74b100d09da0bd9008e06f5ba0011bdc6117352
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon14.imageset/cs100367196602765414.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon15.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon15.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..f490b311fe8f84c03538e23ab7b6a9390731ca2d
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon15.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs100444304289930325.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon15.imageset/cs100444304289930325.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon15.imageset/cs100444304289930325.png
new file mode 100644
index 0000000000000000000000000000000000000000..2d1ddbc4c127b2d919b98c34f277800d55166e38
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon15.imageset/cs100444304289930325.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon16.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon16.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..395c24bedef29c2de5d9ea66def18da123bc7447
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon16.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs100630750052269087.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon16.imageset/cs100630750052269087.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon16.imageset/cs100630750052269087.png
new file mode 100644
index 0000000000000000000000000000000000000000..5538bd7d7045830335dcc15f39d377133376eec7
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon16.imageset/cs100630750052269087.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon17.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon17.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..9a1dfe50c77304a216bad049622a49ffe88a1c2a
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon17.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs101172805621739638.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon17.imageset/cs101172805621739638.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon17.imageset/cs101172805621739638.png
new file mode 100644
index 0000000000000000000000000000000000000000..347634eda5fd41d28d019945218022d12f429ed3
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon17.imageset/cs101172805621739638.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon18.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon18.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..0dd2fd6e215e85f62e3a60d368f2923e4b358679
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon18.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs101724504648038815.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon18.imageset/cs101724504648038815.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon18.imageset/cs101724504648038815.png
new file mode 100644
index 0000000000000000000000000000000000000000..06fcdb878ce1df261cee59be8c09d4550e35e28e
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon18.imageset/cs101724504648038815.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon19.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon19.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..3ef802f763b4576c72ed21a3b7199be9df1f3469
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon19.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs101767157496046490.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon19.imageset/cs101767157496046490.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon19.imageset/cs101767157496046490.png
new file mode 100644
index 0000000000000000000000000000000000000000..e113ad31599dd6638832a7aba607359267912c8b
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon19.imageset/cs101767157496046490.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon2.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon2.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..38f52c2b2f958660a1768ea3097aa204e59092ef
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon2.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs1125646615313076.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon2.imageset/cs1125646615313076.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon2.imageset/cs1125646615313076.png
new file mode 100644
index 0000000000000000000000000000000000000000..c3a55f4c1a9ff84c8df4d923f56b8c8d15c047ee
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon2.imageset/cs1125646615313076.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon20.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon20.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..8c1322604bf1150d333ed0a1c9dd05f85ad7db9b
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon20.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs101957715605808227.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon20.imageset/cs101957715605808227.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon20.imageset/cs101957715605808227.png
new file mode 100644
index 0000000000000000000000000000000000000000..eaaaccb1328738274c422a15ece0dc2a521ae32d
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon20.imageset/cs101957715605808227.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon21.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon21.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..28444de308d77cea333cc814e3eb95ae51da3c49
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon21.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs102400950696764945.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon21.imageset/cs102400950696764945.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon21.imageset/cs102400950696764945.png
new file mode 100644
index 0000000000000000000000000000000000000000..1b49c5a2eb373e748a0ce8ef8650c4d4b54cb2dd
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon21.imageset/cs102400950696764945.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon22.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon22.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..219fd315a0bbfe3a0cad75a11408ad8bb06c105f
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon22.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs102422236815498498.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon22.imageset/cs102422236815498498.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon22.imageset/cs102422236815498498.png
new file mode 100644
index 0000000000000000000000000000000000000000..71299059b2d9e388ac0de18e2e6b7442e54084bf
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon22.imageset/cs102422236815498498.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon23.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon23.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..5d3c0efffa89f0f2b7038dc7529a6ca14d0a1a0a
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon23.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs102861240281778234.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon23.imageset/cs102861240281778234.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon23.imageset/cs102861240281778234.png
new file mode 100644
index 0000000000000000000000000000000000000000..067b3a5c69dae65a0659c6635a46a73ec37afeb4
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon23.imageset/cs102861240281778234.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon24.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon24.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..1a337b718d665279d11ddfff348b03fe7b695084
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon24.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs102996970073821635.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon24.imageset/cs102996970073821635.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon24.imageset/cs102996970073821635.png
new file mode 100644
index 0000000000000000000000000000000000000000..2751f69a935a64ffb8db5f2f565dd63a4f6cf4de
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon24.imageset/cs102996970073821635.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon25.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon25.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..63fabbc993eb6326906dadc667e5ba34a5268fc5
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon25.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs103078152548071803.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon25.imageset/cs103078152548071803.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon25.imageset/cs103078152548071803.png
new file mode 100644
index 0000000000000000000000000000000000000000..c288ef5fe0be6b9ba12152c15a0c500771b268d4
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon25.imageset/cs103078152548071803.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon26.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon26.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..fbd42b9f93d4b9d85cf3a4d6f6562c265daaf673
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon26.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs103423283580625484.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon26.imageset/cs103423283580625484.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon26.imageset/cs103423283580625484.png
new file mode 100644
index 0000000000000000000000000000000000000000..751fb817f525e7cf27d64e46a908b507ace4b89b
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon26.imageset/cs103423283580625484.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon27.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon27.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..6f2c97887de277cb953b9ad876cf61c6f6eb8ed3
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon27.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs103486772320911001.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon27.imageset/cs103486772320911001.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon27.imageset/cs103486772320911001.png
new file mode 100644
index 0000000000000000000000000000000000000000..52f54a89f4006422e4a7110e2009c83d7e5f0783
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon27.imageset/cs103486772320911001.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon28.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon28.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..8326d093abfa0a8cdc90ab184fd67a748e38fee9
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon28.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs103587423973880298.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon28.imageset/cs103587423973880298.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon28.imageset/cs103587423973880298.png
new file mode 100644
index 0000000000000000000000000000000000000000..b5d1a1c549c75d6aae45d2f2608076f2ec0601a7
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon28.imageset/cs103587423973880298.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon29.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon29.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..6f177f7ae25159a9772bf41347bc3901eab33314
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon29.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs103659213402785408.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon29.imageset/cs103659213402785408.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon29.imageset/cs103659213402785408.png
new file mode 100644
index 0000000000000000000000000000000000000000..330c5d5e9b683427a099d91e8706f644820940e1
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon29.imageset/cs103659213402785408.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon3.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon3.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..f0923e2363d779a81aa61604ad370093376d38df
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon3.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs10188651804540743.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon3.imageset/cs10188651804540743.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon3.imageset/cs10188651804540743.png
new file mode 100644
index 0000000000000000000000000000000000000000..50980539b3497d64d721534865f44378b7204f34
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon3.imageset/cs10188651804540743.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon30.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon30.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..087b947a0ca104c0b880f6995303438f2f6997a0
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon30.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs103663933281312281.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon30.imageset/cs103663933281312281.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon30.imageset/cs103663933281312281.png
new file mode 100644
index 0000000000000000000000000000000000000000..c5f45e7dea862d2ad21c6e506267ac17abb89a96
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon30.imageset/cs103663933281312281.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon31.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon31.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..0121902d7227f15ed62798d39526dab8eee7a649
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon31.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs103822919467497853.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon31.imageset/cs103822919467497853.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon31.imageset/cs103822919467497853.png
new file mode 100644
index 0000000000000000000000000000000000000000..d10d1e1591dee487f4948ab0e2ee31f30d092af2
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon31.imageset/cs103822919467497853.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon32.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon32.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..3cfe11a74f52c0ec33e48e02b5fb1722b0a9432a
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon32.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs103987180036984774.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon32.imageset/cs103987180036984774.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon32.imageset/cs103987180036984774.png
new file mode 100644
index 0000000000000000000000000000000000000000..dbeb21ecf8a690b9477878c7515f8e4c6eecaa8c
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon32.imageset/cs103987180036984774.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon33.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon33.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..6ad87612de6e027a9da143b04d19c51554cb4d91
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon33.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs104029297788010187.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon33.imageset/cs104029297788010187.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon33.imageset/cs104029297788010187.png
new file mode 100644
index 0000000000000000000000000000000000000000..446cfadbbfeacc81c9011e775dfcee12a22e4602
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon33.imageset/cs104029297788010187.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon34.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon34.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..f3aa89dfd6f44dca7ea26c97969b0159d965143a
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon34.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs104058099070443101.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon34.imageset/cs104058099070443101.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon34.imageset/cs104058099070443101.png
new file mode 100644
index 0000000000000000000000000000000000000000..2135438a60379a8d88c2bf58a0cdcf713dc19392
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon34.imageset/cs104058099070443101.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon35.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon35.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..dec2c1a6a060079b85091dc73f4b5e848ef1f5a4
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon35.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs104393807829754417.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon35.imageset/cs104393807829754417.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon35.imageset/cs104393807829754417.png
new file mode 100644
index 0000000000000000000000000000000000000000..763f1123f18283c818dc42077357e1d147259e35
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon35.imageset/cs104393807829754417.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon36.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon36.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..96f398a10cc852aaa18486576992416e64efe2c4
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon36.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs104495237148868391.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon36.imageset/cs104495237148868391.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon36.imageset/cs104495237148868391.png
new file mode 100644
index 0000000000000000000000000000000000000000..1d89152b84bc2c416d78a314db3c4b6b160ec06e
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon36.imageset/cs104495237148868391.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon37.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon37.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..9ed14548fdb989088ade439514dd13cbbe2ce592
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon37.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs104551932686398700.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon37.imageset/cs104551932686398700.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon37.imageset/cs104551932686398700.png
new file mode 100644
index 0000000000000000000000000000000000000000..c9e12aabe39cb276ef7c1b2baab76a0a427dfac2
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon37.imageset/cs104551932686398700.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon38.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon38.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..32e25c04674ad9779421dbcc15e7fc24a963f8e9
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon38.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs104563437674275986.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon38.imageset/cs104563437674275986.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon38.imageset/cs104563437674275986.png
new file mode 100644
index 0000000000000000000000000000000000000000..80b8bbdee67916439d71bb83409188aea6c80caf
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon38.imageset/cs104563437674275986.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon39.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon39.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..75bf0a262869fe3fd5a4fcb1c2281e038d14f9aa
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon39.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs104924347815727490.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon39.imageset/cs104924347815727490.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon39.imageset/cs104924347815727490.png
new file mode 100644
index 0000000000000000000000000000000000000000..e054f4f61c806907f22c9ccbca50430e8103c726
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon39.imageset/cs104924347815727490.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon4.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon4.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..ae1963922e94ffef4c3191d6546fdd7d5f28abe5
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon4.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs10445905019035139.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon4.imageset/cs10445905019035139.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon4.imageset/cs10445905019035139.png
new file mode 100644
index 0000000000000000000000000000000000000000..44774132c039b46588e943150a30318182e7a07e
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon4.imageset/cs10445905019035139.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon40.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon40.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..9b88b2b40820b96dffb8d710a29049a4868c14b1
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon40.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs104968955657654599.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon40.imageset/cs104968955657654599.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon40.imageset/cs104968955657654599.png
new file mode 100644
index 0000000000000000000000000000000000000000..66f35cdd9bbda00f22e74d5b648a1479eeb4dc76
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon40.imageset/cs104968955657654599.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon41.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon41.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..e6c66436bf2dc333142f12f4a7c08e309c00998a
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon41.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs104983947614280485.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon41.imageset/cs104983947614280485.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon41.imageset/cs104983947614280485.png
new file mode 100644
index 0000000000000000000000000000000000000000..5edf414d8577b60e82353e3dbabfc7106d2891dd
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon41.imageset/cs104983947614280485.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon42.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon42.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..c6ff1625f739f732cfa85f3de658be1460be4a80
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon42.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs105013173991731446.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon42.imageset/cs105013173991731446.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon42.imageset/cs105013173991731446.png
new file mode 100644
index 0000000000000000000000000000000000000000..ad8a58ea8795b1f00903f364f9599df24badbb69
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon42.imageset/cs105013173991731446.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon43.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon43.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..5002cf9df80fa89c505f8d526595ce9ec0972aee
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon43.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs105105240413858862.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon43.imageset/cs105105240413858862.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon43.imageset/cs105105240413858862.png
new file mode 100644
index 0000000000000000000000000000000000000000..bea0dc1c4e86d85f68f625e1eb4682db319b8eec
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon43.imageset/cs105105240413858862.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon44.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon44.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..3ad0622ae2fb737cc7e1395adeb962da6453bd94
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon44.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs105149584509303839.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon44.imageset/cs105149584509303839.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon44.imageset/cs105149584509303839.png
new file mode 100644
index 0000000000000000000000000000000000000000..a640b8d4a871a04da22627ef694207f10085848e
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon44.imageset/cs105149584509303839.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon45.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon45.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..c9b0db0adaab321308a8d6d0522485f1778f2adf
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon45.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs105316240118440367.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon45.imageset/cs105316240118440367.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon45.imageset/cs105316240118440367.png
new file mode 100644
index 0000000000000000000000000000000000000000..d29d5d1f047c75f6336e3b226e40b3018ed0bd32
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon45.imageset/cs105316240118440367.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon46.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon46.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..5c3b3024252290093c1b5404f5ca7acdd8a5039c
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon46.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs105362030430960514.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon46.imageset/cs105362030430960514.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon46.imageset/cs105362030430960514.png
new file mode 100644
index 0000000000000000000000000000000000000000..d428489cd9cc8b66f501f320e21030bfb4670e7e
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon46.imageset/cs105362030430960514.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon47.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon47.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..256ece6df4710932f85246a486940506b56dbb7f
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon47.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs105479796479016880.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon47.imageset/cs105479796479016880.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon47.imageset/cs105479796479016880.png
new file mode 100644
index 0000000000000000000000000000000000000000..e47b2b4bcaa0d506c9eb14174b15e65688233f42
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon47.imageset/cs105479796479016880.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon48.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon48.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..e3b0427819f0b763a979f3144d00c82a719afe2e
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon48.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs105703236117912354.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon48.imageset/cs105703236117912354.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon48.imageset/cs105703236117912354.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e37608f3cc7b67129d390988c7342768bc9c424
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon48.imageset/cs105703236117912354.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon49.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon49.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..d433ca724435ef186c049528eed3cf21aa4641cf
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon49.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs105773704768325821.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon49.imageset/cs105773704768325821.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon49.imageset/cs105773704768325821.png
new file mode 100644
index 0000000000000000000000000000000000000000..a64db374e9df610ccf4aeec5213dd2c36cedae92
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon49.imageset/cs105773704768325821.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon5.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon5.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..5535049bb256b2bb47d7b85166a4a8f0da044b7b
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon5.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs10562124521050923.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon5.imageset/cs10562124521050923.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon5.imageset/cs10562124521050923.png
new file mode 100644
index 0000000000000000000000000000000000000000..ae477d1aec529fe72d47662e001cf1966ebb18c0
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon5.imageset/cs10562124521050923.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon6.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon6.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..d43774e8df226162f7ee9b8ac35cfa296e6e9a3e
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon6.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs10712649413789781.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon6.imageset/cs10712649413789781.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon6.imageset/cs10712649413789781.png
new file mode 100644
index 0000000000000000000000000000000000000000..f85eb18b0b8afc7321aa81812fa5d1cc0af0b1dd
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon6.imageset/cs10712649413789781.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon7.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon7.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..caf61571caa980625df6b9898c341f9c0c3a478a
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon7.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs10823521825795415.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon7.imageset/cs10823521825795415.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon7.imageset/cs10823521825795415.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca50dda317073731b6972f452a56be6094f19345
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon7.imageset/cs10823521825795415.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon8.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon8.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..f12be0f3ead14afffe1e1f5f7ff368bb578a16b2
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon8.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs11010345522393046.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon8.imageset/cs11010345522393046.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon8.imageset/cs11010345522393046.png
new file mode 100644
index 0000000000000000000000000000000000000000..211a13b985892a7a36d035f2d9b76bf512051035
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon8.imageset/cs11010345522393046.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon9.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon9.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..a79376486d51752d903ccac2620d7d632be7ae01
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon9.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "cs11096764340505821.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/enzevalos_iphone/Assets.xcassets/cartoons/cartoon9.imageset/cs11096764340505821.png b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon9.imageset/cs11096764340505821.png
new file mode 100644
index 0000000000000000000000000000000000000000..bedd6184ea119dddc60b011b9aea6853e91305bf
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/cartoons/cartoon9.imageset/cs11096764340505821.png differ
diff --git a/enzevalos_iphone/CNContactExtension.swift b/enzevalos_iphone/CNContactExtension.swift
index 32a227a323193fa6aabe6f8d9dddd5b2edfa1e1c..d7d6955d0573a7ab02b15fb5ce29507e63de1564 100644
--- a/enzevalos_iphone/CNContactExtension.swift
+++ b/enzevalos_iphone/CNContactExtension.swift
@@ -42,3 +42,12 @@ extension CNContact {
     }
 
 }
+
+extension UIColor {
+    static var random: UIColor {
+        return UIColor(red: .random(in: 0...1),
+                       green: .random(in: 0...1),
+                       blue: .random(in: 0...1),
+                       alpha: 1.0)
+    }
+}
diff --git a/enzevalos_iphone/ContactHandler.swift b/enzevalos_iphone/ContactHandler.swift
index 35f37d2205e573fbd091dc92667ffb28b13174ff..82c3d01f7102d31d258702353679b575fd4bf130 100644
--- a/enzevalos_iphone/ContactHandler.swift
+++ b/enzevalos_iphone/ContactHandler.swift
@@ -24,6 +24,8 @@ import SwiftUI
 
 // TODO: Mark displayname as from CNContact
 class ContactHandler {
+    static var cartoons = true
+    
     private let store = CNContactStore()
     static let handler = ContactHandler()
     let keysToFetch = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactNicknameKey, CNContactIdentifierKey, CNContactImageDataKey] as [CNKeyDescriptor]
@@ -99,6 +101,17 @@ class ContactHandler {
         }
     }
     
+    
+    private static func mapToCartoon(name: String, key: String?) -> Image {
+        let maxCartoons = 50
+        var id = abs(name.hash % maxCartoons)
+        if let key = key {
+            id = abs(key.hash % maxCartoons)
+        }
+        return Image("cartoon\(id)")
+                .resizable()
+    }
+    
     public static func makeImageFromName(_ name: String, color: UIColor) -> UIImage {
         var text: NSAttributedString
         var tag = String()
@@ -148,6 +161,10 @@ class ContactHandler {
         if let imageData = addr.image, let image = UIImage(data: imageData) {
             return Image(uiImage: image)
         }
+        if cartoons {
+            // TODO: Fix mapping to key.
+            return mapToCartoon(name: addr.name, key: nil)
+        }
         return Image(uiImage: makeImageFromName(addr.name, color: getColor(name: addr.name)  ))
     }
 
diff --git a/enzevalos_iphone/MailHandler.swift b/enzevalos_iphone/MailHandler.swift
index ba2ee7a33deb845432bb5b0ec85047392ccc72be..0804f453fb4402150d9c206dfe822b3fe162f2fc 100644
--- a/enzevalos_iphone/MailHandler.swift
+++ b/enzevalos_iphone/MailHandler.swift
@@ -57,6 +57,9 @@
     static var INBOX: String {
         return UserManager.backendInboxFolderPath
     }
+    static var SENT: String {
+        return UserManager.backendSentFolderPath
+    }
     private var IMAPSes: MCOIMAPSession?
     var IMAPSession: MCOIMAPSession? {
         if IMAPSes == nil {
diff --git a/enzevalos_iphone/PreviewSampleData/SimulatorData.swift b/enzevalos_iphone/PreviewSampleData/SimulatorData.swift
index 88cd8056f6caf617fa48c4a053884bc28d1966d9..428081ad60c8119a1a478e909bb86c62b1c81398 100644
--- a/enzevalos_iphone/PreviewSampleData/SimulatorData.swift
+++ b/enzevalos_iphone/PreviewSampleData/SimulatorData.swift
@@ -37,9 +37,9 @@ struct SimulatorData_Previews: PreviewProvider {
 
 struct ProxyData {
     // Different Contacts
-    static let Alice = ProxyContact(name: "Alice", email: "alice@example.com", avatar: ProxyContact.makeImg("Alice", color: .blue))
-    static let Bob = ProxyContact(name: "Bob", email: "Bob.lord.of.kingsbridge.and.king.of.england@huge.subdomain.with. a.long.long.long.domain.example.com", avatar: ProxyContact.makeImg("Bob", color: .red))
-    static let Charlie = ProxyContact(name: "Charlie", email: "charlie@example.com", avatar: ProxyContact.makeImg("Charlie", color: .green))
+    static let Alice = ProxyContact(emails: ["salvador.felipe.jacinto.dali@abc.de"], name: "Salvador Felipe Jacinto Dalí y Domenech", email: "alice@example.com", avatar: ProxyContact.makeImg("Alice", color: .blue))
+    static let Bob = ProxyContact(emails: ["hallo@abc.de", "zweildrei.de"], name: "Bob Walker", email: "Bob.lord.of.kingsbridge.and.king.of.england@huge.subdomain.with. a.long.long.long.domain.example.com", avatar: ProxyContact.makeImg("Bob", color: .red))
+    static let Charlie = ProxyContact(emails: ["Charlie@blah.de", "zweildrei.de","charlie@gmx.not","Charlie@blah.de", "zweildrei.de","charlie@gmx.nt"], name: "Charlie Marley", email: "charlie@example.com", avatar: ProxyContact.makeImg("Charlie", color: .green))
     static let Landmarks = [
          Landmark(name: "Berlin", domain: "exampledomain.de", location: .init(latitude: 52.520008, longitude: 13.404954)),
          Landmark(name: "New York", domain: "secondexampledomain.de", location: .init(latitude: 40.730610, longitude: -73.935242)),
@@ -90,6 +90,8 @@ struct ProxyFolder: DisplayFolder {
 }
 
 struct ProxyContact: DisplayContact {
+    var emails: [String]
+    
     typealias K = ProxyPublicKey
     typealias C = ProxyContact
     
@@ -126,6 +128,15 @@ struct ProxyContact: DisplayContact {
     }
     
     public static func makeImg(_ name: String, color: UIColor) -> Image {
+        let cartoon = ContactHandler.cartoons
+        
+        if cartoon {
+            let maxCartoons = 50
+            let id = abs(name.hash % maxCartoons)
+            return Image("cartoon\(id)")
+                    .resizable()
+        }
+        
         var text: NSAttributedString
         var tag = String()
         if name.count > 0 {
@@ -172,12 +183,13 @@ struct ProxyContact: DisplayContact {
     
 }
 
-struct ProxyMail: DisplayMail {
+struct ProxyMail: DisplayMail, Identifiable {
     typealias U = ProxyContact
     typealias D = DialogStruct
     typealias K = ProxyPublicKey
 
     var previewName: String
+    let id = UUID()
 
     var displayAttachments: [DisplayAttachment] = []
         
@@ -261,3 +273,4 @@ JVBERi0xLjUKJdDUxdgKMTI1IDAgb2JqCjw8Ci9MZW5ndGggNTM1NCAgICAgIAovRmlsdGVyIC9GbGF0
 }
 
 
+
diff --git a/enzevalos_iphone/SwiftUI/Contact/ContactMailListView.swift b/enzevalos_iphone/SwiftUI/Contact/ContactMailListView.swift
new file mode 100644
index 0000000000000000000000000000000000000000..8244467c7f9ef66b9dd3f2a07a08a9c7b359909b
--- /dev/null
+++ b/enzevalos_iphone/SwiftUI/Contact/ContactMailListView.swift
@@ -0,0 +1,150 @@
+//
+//  ContactMailListView.swift
+//  enzevalos_iphone
+//
+//  Created by Amir Rajabi and Goekhan Guemues on 25.03.21
+//  Copyright © 2021 fu-berlin. All rights reserved.
+//
+
+import SwiftUI
+import CoreData
+
+/// A view that shows up to three emails received from or sent to this contact depending on the folderType.
+struct ContactMailListView: View {
+    public var folderpath: String
+    public var folderName: String
+    public var emailAddresses: [String]
+    public var fetchRequest: FetchRequest<MailRecord>
+    public var emails: FetchedResults<MailRecord>{fetchRequest.wrappedValue}
+    
+    
+    init(folderpath: String, folderName: String, emailAddresses: [String]) {
+        fetchRequest = MailRecord.mailsInFolderFetchRequest(folderpath: folderpath)
+        self.folderpath = folderpath
+        self.folderName = folderName
+        self.emailAddresses = emailAddresses
+    }
+    
+    
+    var body: some View {
+        ZStack {
+            newRoundedRectangle()
+            VStack {
+                // Creates a filtered array of the array emails
+                let filteredEmails = self.emails.filter(filterEmailList)
+                
+                // Lists up to three emails of the contact from the filtered emails
+                ForEach (0..<min(3,filteredEmails.count)) { record in
+                    NavigationLink(
+                        destination: ReadMainView(model: ReadModel(mail: filteredEmails[record]))) {
+                        MailRowView(mail: filteredEmails[record])
+                    }
+                    if record < min(2, filteredEmails.count - 1) {
+                        Divider()
+                    }
+                }
+                
+                // If the list contains more than three emails, a button is displayed
+                if filteredEmails.count > 3{
+                    HStack {
+                        Spacer()
+                        NavigationLink(
+                            destination: MoreContactMailView(folderpath: folderpath, folderName: folderName, emailAddresses: emailAddresses)) {
+                            Text(NSLocalizedString("Contact.Button.ShowMore", comment: "Contact.Button.ShowMore"))
+                        }
+                    }.padding(.top, -10)
+                }
+                
+            }
+            .padding(.trailing)
+            .padding(.vertical, 9)
+            
+        }
+        .padding(.horizontal,5)
+    }
+    
+    /// Depending on the folder type of the email, a check is made as to whether the contact is the sender or recipient of the email.
+    /// - Parameter email: the email that is being checked
+    func filterEmailList(email: MailRecord) -> Bool {
+        
+        // TODO: Checking the foldertype doesn't list (all) the emails.
+        // It seems that the set flags in foldertype are buged right now.
+        // For now it checks the folderName.
+        if folderName == "Inbox"{
+            
+            if (emailAddresses.contains(email.sender.email)) {
+                return true
+            }
+        }
+        else{
+            
+            var counter = 0
+            
+            while counter < email.addresses.count {
+                if (emailAddresses.contains(email.addresses[counter].email)) {
+                    return true
+                }
+                counter += 1}
+            
+            return false
+        }
+        
+        return false
+    }
+    
+}
+
+/// A view to list all emails received from or sent to the contact, depending on the clicked more button in ContactMailListView.
+struct MoreContactMailView: View {
+    var folderpath: String
+    var folderName: String
+    var emailAddresses: [String]
+    
+    public var fetchRequest: FetchRequest<MailRecord>
+    public var emails: FetchedResults<MailRecord>{fetchRequest.wrappedValue}
+    
+    var receivedHeader: LocalizedStringKey = "Contact.Received.Header"
+    var sentHeader: LocalizedStringKey = "Contact.Sent.Header"
+    
+    
+    init(folderpath: String, folderName: String, emailAddresses: [String]) {
+        fetchRequest = MailRecord.mailsInFolderFetchRequest(folderpath: folderpath)
+        self.folderpath = folderpath
+        self.folderName = folderName
+        self.emailAddresses = emailAddresses
+    }
+    
+    
+    var body: some View {
+        
+        // Creates an instance of ContactMailListView to use the filteredEmailList function
+        let functionCall = ContactMailListView(folderpath: folderpath, folderName: folderName, emailAddresses: emailAddresses)
+        let filteredEmails = self.emails.filter(functionCall.filterEmailList)
+        
+        // The header is set depending on the folder name of the emails retrieved
+        let header = (folderName == "Sent") ? sentHeader : receivedHeader
+        HStack{
+            Text(header)
+                .font(.title)
+                .fontWeight(.semibold)
+            Spacer()
+        }.padding(.leading, 21)
+        .padding(.top, 5)
+        
+            List (filteredEmails, id: \.self){ record in
+                NavigationLink(
+                    destination: ReadMainView(model: ReadModel(mail: record))) {
+                    MailRowView(mail: record)
+                }
+            }
+    }
+}
+
+
+
+struct ContactMailListView_Previews: PreviewProvider {
+    static var previews: some View {
+        ContactMailListView(folderpath: "INBOX", folderName: "INBOX", emailAddresses: [])
+            .environment(\.managedObjectContext, PersistentDataProvider.proxyPersistentDataProvider.persistentContainer.viewContext)
+    }
+}
diff --git a/enzevalos_iphone/SwiftUI/Contact/ContactTabView.swift b/enzevalos_iphone/SwiftUI/Contact/ContactTabView.swift
deleted file mode 100644
index 4c6fd44cc1f90e04daf24b1461793fe8a7a61af8..0000000000000000000000000000000000000000
--- a/enzevalos_iphone/SwiftUI/Contact/ContactTabView.swift
+++ /dev/null
@@ -1,125 +0,0 @@
-//
-//  ContactView.swift
-//  enzevalos_iphone
-//
-//  Created by Oliver Wiese on 30.10.20.
-//  Copyright © 2020 fu-berlin. All rights reserved.
-//
-
-import SwiftUI
-
-/// A subview for ContactView
-struct ContactTabView <C: DisplayContact, M: DisplayMail>: View {
-    
-    public var contact: C
-    public var fromMail: M?
-    public var derivedFromKey: Bool = true
-    
-    private var keyID: String? {
-        return fromMail?.signatureKey?.keyID
-    }
-    
-    var body: some View {
-        VStack{
-            VStack(alignment: .leading, spacing: 3) {
-                Text(contact.name)
-                    .font(.title)
-                rating
-                if contact.name != contact.email {
-                    row(label: "ContactView.EMail.Name", data: contact.email, action: composeMail)
-                        .padding(.bottom, 10)
-                }
-                key
-            }.padding(5)
-            icon
-            backgroundInfo
-            Spacer()
-        }
-    }
-    
-    private var icon: some View {
-        contact.avatar
-            .resizable()
-            .frame(width: 130, height: 110)
-            .clipShape(Circle())
-            .overlay(Circle().stroke(Color.white, lineWidth: 4))
-            .shadow(radius: 10)
-            .padding(10)
-    }
-
-    private var key: AnyView? {
-        if let keyID = keyID {
-            var label: LocalizedStringKey =  "ContactView.Key.Signature.Name"
-            if fromMail == nil {
-                label = "ContactView.Key.Primary.Name"
-            }
-            return AnyView(row(label: label, data: keyID, action: inspectKey))
-        } else {
-            return AnyView(Button("Invitation.Welcome.Try.InvitationMail", action: invite))
-        }
-    }
-    
-    private var rating: some View {
-        HStack {
-            Text("ContactView.Rating.Name")
-                .foregroundColor(.gray)
-            Text(contact.rating(mail: fromMail).name)
-                .foregroundColor(contact.rating(mail: fromMail).color)
-        }
-    }
-    
-    var backgroundInfo: some View {
-        VStack (alignment: .leading, spacing: 3){
-            if derivedFromKey, let discovery = contact.primaryKey?.discovery {
-                row(label: "ContactView.KnownSince", data: discovery.dateToString, action: nil) // TODO Add discovery mail?
-            } else if let discovery = contact.discovery {
-                row(label: "ContactView.KnownSince", data: discovery.dateToString, action: nil)
-            } else {
-                row(label: "ContactView.KnownSince.Unknown", data:nil, action: nil)
-            }
-            if derivedFromKey, let last = contact.primaryKey?.lastSeen {
-                row(label: "ContactView.LastMail.Name", data: last.dateToString, action: nil)
-            }
-            else if let last = contact.last {
-                row(label: "ContactView.LastMail.Name", data: last.dateToString, action: nil)
-            } else {
-                row(label: "ContactView.LastMail.No", data: nil, action: nil)
-            }
-        } .padding(10)
-    }
-    
-    private func row(label: LocalizedStringKey, data: String?, action: ((()->Void)?)) -> some View {
-        HStack {
-            Text(label)
-                .foregroundColor(.gray)
-            if let data = data, let action = action {
-                Button(data, action: action)
-            } else if let data = data{
-                Text(data)
-                    .foregroundColor(.gray)
-            }
-        }
-    }
-    
-    private func composeMail() {
-        print("Compose mail!")
-    }
-    
-    private func inspectKey() {
-        print("Inspect key!")
-    }
-    
-    private func invite() {
-        print("Invite user!")
-    }
-    
-}
-
-struct ContactTabView_Previews: PreviewProvider {
-    static var previews: some View {
-        ContactTabView<ProxyContact, ProxyMail>(contact: ProxyData.Alice)
-        ContactTabView<ProxyContact, ProxyMail>(contact: ProxyData.Bob)
-        ContactTabView<ProxyContact, ProxyMail>(contact: ProxyData.Charlie)
-
-    }
-}
diff --git a/enzevalos_iphone/SwiftUI/Contact/ContactView.swift b/enzevalos_iphone/SwiftUI/Contact/ContactView.swift
index aba0935a46e7feef5a54f9c86071afe5dfcb191c..310dbf7430ddb30a5ca1cb0d9d3b9c00cd375298 100644
--- a/enzevalos_iphone/SwiftUI/Contact/ContactView.swift
+++ b/enzevalos_iphone/SwiftUI/Contact/ContactView.swift
@@ -3,6 +3,7 @@
 //  enzevalos_iphone
 //
 //  Created by Oliver Wiese on 30.10.20.
+//  Modified by Amir Rajabi and Goekhan Guemues on 25.03.21
 //  Copyright © 2020 fu-berlin. All rights reserved.
 //
 
@@ -10,41 +11,307 @@ import SwiftUI
 
 // TODO: Add contact book, related addresses, related keys, related mails.
 
-struct ContactView <C: DisplayContact, M: DisplayMail>: View {
+/// A model of all published properties used in ContactView
+class ContactProperties: ObservableObject {
+    @Published var emailAddress: String = ""
+    @Published var showKeysPopup = false
+    @Published var composeMail = false
+}
+
+/// A contact view with all associated email addresses and also some emails received from or sent to  this  contact.
+/// - Parameter contact: the contact that is being viewed
+struct ContactView <C: DisplayContact>: View {
     public var contact: C
-    public var fromMail: M?
-    public var derivedFromKey: Bool = true
+    @StateObject var properties = ContactProperties()
     
+    /// Creates the view body
     var body: some View {
-        TabView{
-            ForEach(Tabs, id: \.id ){ tab in
-                tab.content
-                    .tabItem {
-                        tab.image
-                        Text(tab.description)
+        ZStack {
+            VStack {
+                HStack {
+                    avatar
+                    
+                    VStack (alignment: .leading) {
+                        contactName.padding(.bottom)
+                        knownSince
+                    }.padding(.leading)
+                    Spacer()
+                }.padding(.leading, 15)
+                ScrollView {
+                    
+                    // A list of all email addresses associated to the contact
+                    newHeader(header: NSLocalizedString("Contact.Email.Header",
+                                                        comment: "Header for the section"))
+                    listContactAddresses
+                    
+                    // Up to three emails received from this contact
+                    newHeader(header: NSLocalizedString("Contact.Received.Header",
+                                                        comment: "Header for the section"))
+                    ContactMailListView(folderpath: MailHandler.INBOX,
+                                        folderName: NSLocalizedString("Inbox", comment: "Inbox"),
+                                        emailAddresses: contact.emails)
+                    
+                    // Up to three emails sent to this contact
+                    newHeader(header: NSLocalizedString("Contact.Sent.Header",
+                                                        comment: "Header for the section"))
+                    ContactMailListView(folderpath: MailHandler.SENT,
+                                        folderName: NSLocalizedString("Sent", comment: "Sent"),
+                                        emailAddresses: contact.emails).padding(.bottom, 25)
+                    
+                    // TODO: Add a section here with all keys of this contact
                 }
+                .padding(.horizontal,5)
+                
+            }.padding(.top, 20)
+            .blur(radius: properties.showKeysPopup ? 2 : 0)
+            
+            // Toggles the popup screen of all keys
+            if properties.showKeysPopup {
+                CryptoKeysPopup
             }
+            
+        }.background(Color(.systemGroupedBackground))
+        .navigationBarItems(trailing: editButton)
+        .sheet(isPresented: $properties.composeMail) {
+            ComposeView(preData: PreMailData(body: "",
+                                             subject: "",
+                                             to: [properties.emailAddress],
+                                             cc: [],
+                                             bcc: []))
         }
-        .navigationTitle("ContactView.Title")
-    }
-    
-    var Tabs:[Tab] {
-        get {
-            return [
-                Tab(
-                    tab: 0, image: Image(systemName: "touchid"),
-                    description: "ContactView.Tab.Contact.Description",
-                    content:AnyView(ContactTabView(contact: contact, fromMail: fromMail, derivedFromKey: derivedFromKey))
-                )
-            ]
+    }
+    
+    
+    // TODO: Add an action for the Edit button
+    private var editButton: some View {
+        Button {} label: {
+            Text(NSLocalizedString("edit", comment: "edit")).font(.body)
         }
     }
+    
+    /// Styling the contact's avatar.
+    private var avatar: some View {
+        contact.avatar
+            .resizable()
+            .frame(width: 110, height: 110, alignment: .center)
+            .clipShape(Circle())
+            .overlay(Circle().stroke(Color.white, lineWidth: 4))
+            .shadow(radius: 10)
+            .padding(.bottom)
+    }
+    
+    /// Styling the contact's display name.
+    private var contactName: some View {
+        // TODO: Show proper name.
+        // Currently for debugging purposes we show the email before "@" as name
+        Text(contact.name.components(separatedBy: "@")[0])
+            .font(.title)
+            .fixedSize(horizontal: false, vertical: true)
+    }
+    
+    /// Shows how long  the contact is known.
+    /// If it is unknown, display an 'Add to contact book' button.
+    var knownSince: some View {
+        VStack (alignment: .leading){
+            
+            if let discovery = contact.primaryKey?.discovery {
+                row(label: "ContactView.KnownSince", data: discovery.dateToString)
+                // TODO Add discovery mail?
+            } else if let discovery = contact.discovery {
+                row(label: "ContactView.KnownSince", data: discovery.dateToString)
+            } else {
+                row(label: "ContactView.KnownSince.Unknown", data:nil)
+                // TODO: 'Add to contact book' button here
+            }
+        }
+    }
+    
+    /// Creates  a frame which contains all email addresses of the contact
+    var listContactAddresses: some View {
+        ZStack{
+            newRoundedRectangle()
+            VStack {
+                ForEach(contact.emails, id: \.self){ eachAddress in
+                    
+                    // This row shows the email address and the label
+                    HStack {
+                        
+                        // When an address is clicked, the ComposeView is called
+                        Button {
+                            properties.emailAddress = eachAddress
+                            
+                            properties.composeMail = true
+                        } label: {
+                            Text("\(eachAddress)")
+                                .fontWeight(.light)
+                                .font(.title2)
+                                .foregroundColor(.blue)
+                                .truncationMode(.middle)
+                                .frame(maxWidth: .infinity,
+                                       maxHeight: .infinity,
+                                       alignment: .leading)
+                            emailAddressLabel
+                        }
+                    }
+                    
+                    // This row shows the security rating and a button do display the keys
+                    HStack{
+                        rating
+                        Button {
+                            withAnimation{
+                                properties.emailAddress = eachAddress
+                                properties.showKeysPopup.toggle()
+                            }
+                            
+                        } label: {
+                            ZStack {
+                                Capsule()
+                                    .frame(height: 25, alignment: .center)
+                                    .shadow(color:.gray, radius:2)
+                                    .foregroundColor(contact.addressRating(contact).color)
+                                
+                                HStack{
+                                    Text(Image(systemName: "key.fill"))
+                                        .rotationEffect(Angle(degrees: 30))
+                                    
+                                    Text(NSLocalizedString("Contact.Key.Description", comment: "Contact.Key.Description"))
+                                        .fontWeight(.medium)
+                                    
+                                }.foregroundColor(.white)
+                                .font(.body)
+                            }
+                        }
+                    }.padding(.vertical,3)
+                    
+                    if eachAddress != contact.emails.last{
+                        Divider().padding(.top,1)
+                    }
+                    
+                }.padding(.horizontal,10)
+                
+            }.padding(5)
+            
+        }.padding(.horizontal,5)
+    }
+    
+    /// Creates a frame for the address label.
+    /// TODO: Add an addressLabel property  to the DisplayContact.
+    var emailAddressLabel: some View {
+        Text(NSLocalizedString("Email.Label", comment: "Email Label"))
+            .font(.caption)
+            .fontWeight(.light)
+            .foregroundColor(Color(.systemGray))
+            .frame(maxWidth: 50 ,
+                   maxHeight: 20,
+                   alignment: .bottomLeading)
+    }
+    
+    /// Shows a list of all keys associated to the email address in a popup screen and blurs the background.
+    var CryptoKeysPopup : some View {
+        GeometryReader{ geometry in
+            HStack{
+                if keyID == nil {
+                    Text(NSLocalizedString("Contact.Key.NotAvailable", comment: "Key not available message"))
+                    
+                } else {
+                    // TODO: keyID should be an array of keys
+                    VStack (alignment: .leading){
+                        Text(NSLocalizedString("Contact.Key.Available", comment: "Key available message")).padding(.bottom, 3)
+                        Text("   \u{2022} \(keyID!)")
+                    }
+                }
+            }
+            .padding()
+            .background(Color(.tertiarySystemBackground))
+            .cornerRadius(15)
+            .frame(maxWidth: geometry.size.width,
+                   maxHeight: geometry.size.height,
+                   alignment: .center)
+            
+        }
+        .padding(.horizontal,15)
+        .background(
+            Color.black.opacity(0.3)
+                .edgesIgnoringSafeArea(.all)
+                .onTapGesture {
+                    properties.showKeysPopup.toggle()
+                    properties.emailAddress = ""
+                }
+        )
+        
+    }
+    
+    // TODO: Change keyID to an array of keys
+    private var keyID: String? {
+        return contact.primaryKey?.keyID
+    }
+    
+    /// Creates the security rating label.
+    private var rating: some View {
+        HStack{
+            Text(Image(systemName: contact.addressRating(contact).shield))
+                .font(.title3)
+            
+            Text(contact.addressRating(contact).name)
+                .fontWeight(.medium)
+                .font(.body)
+            
+        }
+        .foregroundColor(contact.addressRating(contact).color)
+        .frame(maxWidth:.infinity,
+               maxHeight: .infinity,
+               alignment: .leading)
+    }
+    
+    /// Creates the text for the 'Known since' property.
+    private func row(label: LocalizedStringKey, data: String?) -> some View {
+        HStack {
+            Text(label)
+            
+            if let data = data{
+                Text(data)
+            }
+            
+        }
+        .font(.custom("SF Pro", size: 12, relativeTo: .caption))
+        .foregroundColor(.gray)
+    }
+}
+
+/// Creates a header for each section.
+struct newHeader: View {
+    var header: String
+    var body: some View {
+        HStack {
+            Text(header)
+                .font(.footnote)
+                .foregroundColor(.secondary)
+                .padding(.horizontal)
+                .padding(.top, 20)
+                .textCase(.uppercase)
+            Spacer()
+        }
+    }
+}
+
+/// Creates a rounded rectangle in which the emails are displayed
+struct newRoundedRectangle: View {
+    var body: some View {
+        RoundedRectangle(cornerRadius: 20)
+            .shadow(color:.gray, radius:2)
+            .background(Color(.systemGroupedBackground))
+            .foregroundColor(Color(.tertiarySystemBackground))
+    }
 }
 
 struct ContactView_Previews: PreviewProvider {
     static var previews: some View {
-        ContactView<ProxyContact, ProxyMail>(contact: ProxyData.Alice)
-        ContactView<ProxyContact, ProxyMail>(contact: ProxyData.Bob)
-        ContactView<ProxyContact, ProxyMail>(contact: ProxyData.Charlie)
+        ContactView<ProxyContact>(contact: ProxyData.Alice)
+        ContactView<ProxyContact>(contact: ProxyData.Alice)
+            .colorScheme(.dark)
+        ContactView<ProxyContact>(contact: ProxyData.Bob)
+        ContactView<ProxyContact>(contact: ProxyData.Bob)
+            .colorScheme(.dark)
+        ContactView<ProxyContact>(contact: ProxyData.Charlie)
     }
 }
diff --git a/enzevalos_iphone/SwiftUI/DisplayProtocols.swift b/enzevalos_iphone/SwiftUI/DisplayProtocols.swift
index 59ddc9046b574349d7eea04fd18bcb1f365904cc..939d5e28c00089167f9d20e9ab7a4edfb7948909 100644
--- a/enzevalos_iphone/SwiftUI/DisplayProtocols.swift
+++ b/enzevalos_iphone/SwiftUI/DisplayProtocols.swift
@@ -87,6 +87,16 @@ enum ContactSecurityRating {
         case .Forgable: return Color(ThemeManager.unencryptedMessageColor())
         }
     }
+    
+    var shield: String {
+        switch self {
+        case .Trustworthy:
+            return "checkmark.shield.fill"
+        case .Forgable:
+            return "exclamationmark.shield.fill"
+        }
+    }
+    
 }
 
 
@@ -119,6 +129,7 @@ protocol DisplayContact {
     var name: String { get }
     var email: String { get }
     var avatar: Image { get }
+    var emails: [String] { get }
     var isInContactBook: Bool { get }
     var discovery: Date? { get }
     var last: Date? { get }
@@ -136,7 +147,6 @@ protocol DisplayContact {
 
 extension DisplayContact {
 
-    
     func findAddress(temp: Bool) -> AddressRecord {
         if let addr = PersistentDataProvider.dataProvider.fetchedAddressResultController.fetchedObjects?.first {
             return addr
@@ -144,13 +154,13 @@ extension DisplayContact {
         fatalError("MISSING ADDR")
     }
     
-    func rating <T:DisplayMail> (mail: T?) -> ContactSecurityRating {
-        if let mail = mail, mail.signatureState == .ValidSignature {
-            return .Trustworthy
-        }
-        if self.primaryKey != nil && mail == nil {
+    func addressRating <C:DisplayContact> (_: C) -> ContactSecurityRating {
+        
+        // TODO: Add another check of the keys array
+        if self.primaryKey != nil  /* || !self.keys.isEmpty */ {
             return .Trustworthy
         }
+        
         // TODO Think about Rating in case of a unsigned mail from a sender with aprimary key...
         return .Forgable
     }
@@ -184,7 +194,6 @@ protocol DisplayMail {
     var signatureKey: K? { get }
     
     var persistentMail: MailRecord? { get }
-    
     func markAsRead(isRead: Bool)
 }
 
diff --git a/enzevalos_iphone/SwiftUI/FolderView/FolderListView.swift b/enzevalos_iphone/SwiftUI/FolderView/FolderListView.swift
index aabf01383b0a8350da744ef84cbd2723e137636b..92faa9dacfdaafe627e9448e9ec5a8dd330a1d44 100644
--- a/enzevalos_iphone/SwiftUI/FolderView/FolderListView.swift
+++ b/enzevalos_iphone/SwiftUI/FolderView/FolderListView.swift
@@ -51,4 +51,3 @@ struct FolderOverView_Previews: PreviewProvider {
         FolderListView()
     }
 }
-
diff --git a/enzevalos_iphone/SwiftUI/Inbox/InboxView.swift b/enzevalos_iphone/SwiftUI/Inbox/InboxView.swift
index 056ad5ac2734a165e31f3366f866cd5db575880e..528c13fbf4790d597ff1a48676df95ab2f684272 100644
--- a/enzevalos_iphone/SwiftUI/Inbox/InboxView.swift
+++ b/enzevalos_iphone/SwiftUI/Inbox/InboxView.swift
@@ -10,6 +10,7 @@
 import SwiftUI
 //import CoreData
 
+
 struct InboxView: View {    
     var folderPath: String
     var name: String
diff --git a/enzevalos_iphone/SwiftUI/Inbox/MailRowView.swift b/enzevalos_iphone/SwiftUI/Inbox/MailRowView.swift
index fa89a176c49db716dfca1b39e1834ee98474eb3f..a81f07e4afaa42f947a50f1eca1dac3506578751 100644
--- a/enzevalos_iphone/SwiftUI/Inbox/MailRowView.swift
+++ b/enzevalos_iphone/SwiftUI/Inbox/MailRowView.swift
@@ -1,5 +1,5 @@
 //
-//  MailRow.swift
+//  MailRowView.swift
 //  enzevalos_iphone
 //
 //  Created by Oliver Wiese on 27.10.20.
@@ -65,5 +65,33 @@ struct MailRow_Previews: PreviewProvider {
     static var previews: some View {
         MailRowView(mail: ProxyData.PlainMail)
             .previewLayout(.sizeThatFits)
+=======
+            .if(activateOnTap, input: {$0.onTapGesture(count: 1, perform: {isLinkActive = true})
+            .background(
+                NavigationLink(destination: ContactView(contact: mail.sender), isActive: $isLinkActive) {
+                    EmptyView()
+                }
+                .hidden()
+            )})
+    }
+    
+}
+
+// A conditional view modifier
+extension View {
+    @ViewBuilder
+    public func `if`<V>(_ condition: Bool, input: (Self) -> V) -> some View where V: View {
+        if condition {
+            input(self)
+        } else {
+            self
+        }
+    }
+}
+
+struct MailRowView_Previews: PreviewProvider {
+    static var previews: some View {
+        MailRowView(mail: ProxyData.PlainMail)
+>>>>>>> 290+Dev
     }
 }
diff --git a/enzevalos_iphone/SwiftUI/LetterboxApp.swift b/enzevalos_iphone/SwiftUI/LetterboxApp.swift
index 25870715d77b86cc62c85b6bfb7b574d6a413bfa..a3fb72feed3c5bf347551287b66235d91b904956 100644
--- a/enzevalos_iphone/SwiftUI/LetterboxApp.swift
+++ b/enzevalos_iphone/SwiftUI/LetterboxApp.swift
@@ -41,4 +41,3 @@ struct LetterboxApp: App {
         }
     }
 }
-
diff --git a/enzevalos_iphone/SwiftUI/Read/ReadModel.swift b/enzevalos_iphone/SwiftUI/Read/ReadModel.swift
index 53460c2f3d66cb3d92a71ce27d73be5b9e57c240..afdf794cf77e05506f3062626cdb772c89903c4b 100644
--- a/enzevalos_iphone/SwiftUI/Read/ReadModel.swift
+++ b/enzevalos_iphone/SwiftUI/Read/ReadModel.swift
@@ -64,12 +64,11 @@ class ReadModel <M: DisplayMail>: ObservableObject {
         case .ReplyAll:
             return PreMailData(body: mail.preparePreviousMailBody(), subject: ResponseType.Reply.addPrefix(subject: mail.subject), to: [mail.sender.email], cc: mail.tos.map({$0.email}) + mail.ccs.map({$0.email}), bcc: mail.bccs.map({$0.email}))
         case .Forward:
-            return PreMailData(body: mail.preparePreviousMailBody(), subject: ResponseType.Reply.addPrefix(subject: mail.subject), to: [], cc: [], bcc: [])
+            return PreMailData(body: mail.preparePreviousMailBody(), subject: ResponseType.Forward.addPrefix(subject: mail.subject), to: [], cc: [], bcc: [])
         case .Archive:
             dismissView = true
             return nil
         case .Unread:
-            mail.markAsRead(isRead: !mail.isRead)
             dismissView = true
             return nil
         }
diff --git a/enzevalos_iphone/SwiftUI/Read/Tabbed Views/SenderViewChildren/SmallContactListView.swift b/enzevalos_iphone/SwiftUI/Read/Tabbed Views/SenderViewChildren/SmallContactListView.swift
index 9c8b20ec7d5054cb25c867c0d59866f6c6c1bb6f..9e42175a945b904c3b1bee6a2540fb3492aa3de2 100644
--- a/enzevalos_iphone/SwiftUI/Read/Tabbed Views/SenderViewChildren/SmallContactListView.swift	
+++ b/enzevalos_iphone/SwiftUI/Read/Tabbed Views/SenderViewChildren/SmallContactListView.swift	
@@ -32,7 +32,7 @@ struct SmallContactListView <C: DisplayContact>: View {
             
             if showList {
                 ForEach(contacts, id: \.email) {contact in
-                    NavigationLink(destination: ContactView<C, MailRecord>(contact: contact, fromMail: nil)) {
+                    NavigationLink(destination: ContactView<C>(contact: contact)) {
                         HStack {
                             CircleImage(image: contact.avatar, radius: 40)
                             VStack (alignment: .leading, spacing: 2){
diff --git a/enzevalos_iphone/SwiftUI/Read/Tabbed Views/SenderViewMain.swift b/enzevalos_iphone/SwiftUI/Read/Tabbed Views/SenderViewMain.swift
index 5426af55d95a15bb985fc8c0210abf361465485b..22e34c1997ca79d888a6121ed7ab8ed9ff65ef4f 100644
--- a/enzevalos_iphone/SwiftUI/Read/Tabbed Views/SenderViewMain.swift	
+++ b/enzevalos_iphone/SwiftUI/Read/Tabbed Views/SenderViewMain.swift	
@@ -72,7 +72,7 @@ struct SenderViewMain <M: DisplayMail>: View {
     }
     
     private var icon: some View {
-        NavigationLink(destination: ContactView(contact: model.mail.sender, fromMail: model.mail)) {
+        NavigationLink(destination: ContactView(contact: model.mail.sender)) {
             model.mail.sender.avatar
                 .resizable()
                 .frame(width: 130, height: 110)
@@ -90,7 +90,7 @@ struct SenderViewMain <M: DisplayMail>: View {
             Text(NSLocalizedString("Sender", comment: "Sender"))
                 .font(.headline)
                 .padding(.bottom, 10)
-            NavigationLink(destination: ContactView(contact: model.mail.sender, fromMail: model.mail)) {
+            NavigationLink(destination: ContactView(contact: model.mail.sender)) {
                 HStack {
                     VStack (alignment: .leading) {
                         Text(model.mail.sender.name)
diff --git a/enzevalos_iphone/SwiftUI/SupportingViews/MailRowView.swift b/enzevalos_iphone/SwiftUI/SupportingViews/MailRowView.swift
index fa89a176c49db716dfca1b39e1834ee98474eb3f..1bca8d3ff29d09ebf46daaef845c9e157fbe984b 100644
--- a/enzevalos_iphone/SwiftUI/SupportingViews/MailRowView.swift
+++ b/enzevalos_iphone/SwiftUI/SupportingViews/MailRowView.swift
@@ -1,5 +1,5 @@
 //
-//  MailRow.swift
+//  MailRowView.swift
 //  enzevalos_iphone
 //
 //  Created by Oliver Wiese on 27.10.20.
diff --git a/enzevalos_iphone/de.lproj/Localizable.strings b/enzevalos_iphone/de.lproj/Localizable.strings
index d2d4ee71864dd49b301d5678d875a4388b3c2b86..4ec91e115604e5f01d38ff999bde70acd7d6fe9a 100644
--- a/enzevalos_iphone/de.lproj/Localizable.strings
+++ b/enzevalos_iphone/de.lproj/Localizable.strings
@@ -5,6 +5,14 @@
  Created by jakobsbode on 06.10.16.
  Copyright © 2016 fu-berlin. All rights reserved.
  */
+"Contact.Key.Description" = "Schlüssel";
+"Contact.Email.Header" = "Adressen";
+"Contact.Received.Header" = "Von diesem Kontakt empfangen";
+"Contact.Sent.Header" = "An diesen Kontakt gesendet";
+"Contact.Key.NotAvailable" = "Diese Email-Adresse hat keine Schlüssel.";
+"Contact.Key.Available" = "Diese Email-Adresse benutzt folgende Schlüssel:";
+"Contact.Button.ShowMore" = "Mehr...";
+"Email.Label" = "Privat";
 "Permission.contactDenied.Title" = "Oops! Zugriff erlauben!";
 "Permission.contactDenied.Description" = "Bitte erlaube Zugriff auf Kontakte in Einstellungen -> Datenschutz -> Kontakte";
 "Permission.Notification.Title" = "Mitteilungen erlauben";
@@ -266,7 +274,6 @@
 "you" = "Deine ID";
 "ContactView.Title" = "Kontakt";
 "ContactView.Tab.Contact.Description" = "Kontakt";
-"ContactView.Tab.EMail.Description" = "Adressen";
 "ContactView.Tab.EMail.Title" = "Verknüpfte Adressen";
 "ContactView.Tab.EMail.Data.No" = "Keine verknüpften Adressen. \n Verknüpfungen können über das Adressbuch erfolgen.";
 "ContactView.ID.Explaination.youCrypto" = "Hier ist deine vertrauenswürdige Identität."; // thisIsYou
@@ -280,9 +287,9 @@
 "ContactView.Nickname.Title" = "Nickname";
 "ContactView.PreferedIDCell.IsPrimID" = "Diese ID wird verwendet um vertrauliche Mails an die Person zu senden.";
 "ContactView.PreferedIDCell.MakePrimID" = "Diese ID zum Versand von vertraulichen Mails verwenden.";
-"ContactView.KnownSince" = "Bekannt seit";
+"ContactView.KnownSince" = "Bekannt seit:";
 "ContactView.KnownSince.Unknown" = "Das Datum des ersten Auftauchens ist unbekannt.";
-"ContactView.LastMail" = "Letzte erhaltene Mail von ";
+"ContactView.LastMail" = "Letzte erhaltene Mail: ";
 "ContactView.LastMail.Name" = "Letzte erhaltene Mail von";
 "ContactView.LastMail.Today" = "Letzte Mail heute erhalten.";
 "ContactView.LastMail.Ago" = "Letzte Mail vor %@ erhalten.";
@@ -292,7 +299,7 @@
 "ContactView.Key.Signature.Name" = "Signatur Schlüssel";
 "ContactView.Key.Primary.Name" = "Bevorzugter Schlüssel";
 "ContactView.Rating.Name" = "Einstufung";
-"ContactView.Rating.Trustworthy" = "Vertrauenswürdig";
+"ContactView.Rating.Trustworthy" = "Sicher";
 "ContactView.Rating.Forgable" = "Fälschbar";
 "didYouSendThis" = "Hallo, haben Sie mir diese E-Mail geschickt?\nIch frage nur, weil die Mail Ihnen nicht eindeutig zugeordnet werden kann und Ihre vorherigen Mails eindeutig Ihnen zuzuordnen waren. Für Erfahrende: Die Mail hat keine digitale Signatur.\n\n";
 "reactButton" = "Um Bestätigung bitten";
diff --git a/enzevalos_iphone/en.lproj/Localizable.strings b/enzevalos_iphone/en.lproj/Localizable.strings
index c27a527def77c96f864fa41f3d550ad25ec34b75..48fb4bd5fd16c55101e1a7c0e97749404ee3cc9b 100644
--- a/enzevalos_iphone/en.lproj/Localizable.strings
+++ b/enzevalos_iphone/en.lproj/Localizable.strings
@@ -5,6 +5,14 @@
  Created by jakobsbode on 06.10.16.
  Copyright © 2016 fu-berlin. All rights reserved.
  */
+"Contact.Key.Description" = "Show Keys";
+"Contact.Email.Header" = "Addresses";
+"Contact.Received.Header" = "Received from this contact";
+"Contact.Sent.Header" = "Sent to this contact";
+"Contact.Key.NotAvailable" = "This email address doesn't have a key.";
+"Contact.Key.Available" = "This email address is using the following keys:";
+"Contact.Button.ShowMore" = "Show more...";
+"Email.Label" = "Private";
 "Permission.contactDenied.Title" = "Oops! Please Allow!";
 "Permission.contactDenied.Description" = "Please Turn On Access Contacts In Settings -> Privacy -> Contacts .";
 "Permission.Notification.Title" = "Allow Notifications";
@@ -236,7 +244,6 @@
 "you.Secure" = "Your genuine ID";
 "ContactView.Title" = "Contact";
 "ContactView.Tab.Contact.Description" = "Contact";
-"ContactView.Tab.EMail.Description" = "Addresses";
 "ContactView.Tab.EMail.Title" = "Related Addresses";
 "ContactView.Tab.EMail.Data.No" = "No related addresses. \n You can add through your address book.";
 "ContactView.ID.Explaination.youCrypto" = "Here is your genuine identity.";
@@ -250,19 +257,19 @@
 "ContactView.Nickname.Title" = "Name";
 "ContactView.PreferedIDCell.IsPrimID" = "ID is used to send genuine mails.";
 "ContactView.PreferedIDCell.MakePrimID" = "Use this ID to send confidential mails.";
-"ContactView.KnownSince" = "Known since";
+"ContactView.KnownSince" = "Known since:";
 "ContactView.KnownSince.Unknown" = "Unknown first appearance date";
 "ContactView.LastMail.Today" = "Last mail received today.";
 "ContactView.LastMail.Ago" = "Last received mail %@ ago.";
-"ContactView.LastMail.Name" = "Last received mail from";
+"ContactView.LastMail.Name" = "Last received mail:";
 "ContactView.LastMail.No" = "No mails received.";
 "ContactView.OtherIDs.Insecure.Title" = "Insecure ID";
 "ContactView.EMail.Name" = "E-Mail";
 "ContactView.Key.Signature.Name" = "Signature Key";
 "ContactView.Key.Primary.Name" = "Primary Key";
 "ContactView.Rating.Name" = "Rating";
-"ContactView.Rating.Trustworthy" = "Trustworthy";
-"ContactView.Rating.Forgable" = "Forgable";
+"ContactView.Rating.Trustworthy" = "Secure Email";
+"ContactView.Rating.Forgable" = "Forgable Email";
 "didYouSendThis" = "Hey, did you send me this mail?\nI'm just asking because the mail is not confidential and we communicated confidentially before.\n\n";
 "reactButton" = "Request Confirmation";
 "sendSecureIfPossible" = "Send confidentially if possible";
diff --git a/enzevalos_iphone/persistentData/AddressRecord.swift b/enzevalos_iphone/persistentData/AddressRecord.swift
index 416e9a54b7eb34e7d446344cdd827bdadabba75f..060bbcf252c4785129925bb128326495ce9cd348 100644
--- a/enzevalos_iphone/persistentData/AddressRecord.swift
+++ b/enzevalos_iphone/persistentData/AddressRecord.swift
@@ -127,6 +127,23 @@ extension AddressRecord {
 }
 
 extension AddressRecord: DisplayContact {
+    var emails: [String] {
+        get{
+            var addresses = [String]()
+            addresses.append(self.email)
+            if let keys = self.usedPublicKeys as? Set<PublicKeyRecord>  {
+                for key in keys {
+                    if let set = key.usedAddress as? Set<String> {
+                        addresses.append(contentsOf: set)
+                    }
+                }
+            }
+            return addresses
+        }
+    }
+    
+    
+    
     typealias C = AddressRecord
     
     var avatar: Image {