diff --git a/enzevalos_iphone.xcodeproj/project.pbxproj b/enzevalos_iphone.xcodeproj/project.pbxproj
index b6bf75ae7548f963c7ef837d327a0a71c8d3dc23..52cb487acb487e855e199a7032e2d69a6ed3407e 100644
--- a/enzevalos_iphone.xcodeproj/project.pbxproj
+++ b/enzevalos_iphone.xcodeproj/project.pbxproj
@@ -190,9 +190,18 @@
 		A135269C1D955BE000D3BFE1 /* enzevalos_iphoneUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A135269B1D955BE000D3BFE1 /* enzevalos_iphoneUITests.swift */; };
 		A16BA2121E0439B6005E29E3 /* providers.json in Resources */ = {isa = PBXBuildFile; fileRef = A16BA2111E0439B6005E29E3 /* providers.json */; };
 		A1735DFA205AB88500B336DB /* SendViewState.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1735DF9205AB88500B336DB /* SendViewState.swift */; };
+		A182182721E5012300918A29 /* Intro.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A182182621E5012300918A29 /* Intro.storyboard */; };
+		A182182C21E5072200918A29 /* IntroDescriptionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A182182B21E5072200918A29 /* IntroDescriptionViewController.swift */; };
+		A182182E21E50D8D00918A29 /* IntroButtonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A182182D21E50D8D00918A29 /* IntroButtonViewController.swift */; };
+		A182183221E518A400918A29 /* IntroContactCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = A182183121E518A400918A29 /* IntroContactCell.xib */; };
+		A182183421E51DD200918A29 /* IntroContactCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A182183321E51DD200918A29 /* IntroContactCell.swift */; };
 		A18E7D771FBDE5D9002F7CC9 /* LoggingEventType.swift in Sources */ = {isa = PBXBuildFile; fileRef = A18E7D761FBDE5D9002F7CC9 /* LoggingEventType.swift */; };
 		A198D2292056B384004CC838 /* SendViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A198D2282056B384004CC838 /* SendViewDelegate.swift */; };
 		A1A9DE731F864B0500B808AA /* ExportCells.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1A9DE721F864B0500B808AA /* ExportCells.swift */; };
+		A1B49E5D21E54CBF00ED86FC /* IntroContactTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B49E5C21E54CBF00ED86FC /* IntroContactTableViewController.swift */; };
+		A1B49E5F21E54EE700ED86FC /* IntroContactView.xib in Resources */ = {isa = PBXBuildFile; fileRef = A1B49E5E21E54EE700ED86FC /* IntroContactView.xib */; };
+		A1B49E6221E55D3F00ED86FC /* TravelIntroCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B49E6121E55D3F00ED86FC /* TravelIntroCoordinator.swift */; };
+		A1B49E6421E55ECD00ED86FC /* IntroPageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B49E6321E55ECD00ED86FC /* IntroPageViewController.swift */; };
 		A1BE3FF61E9664660040114B /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = A1BE3FF81E9664660040114B /* InfoPlist.strings */; };
 		A1C3270E1DB907D900CE2ED5 /* TextFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1C3270D1DB907D900CE2ED5 /* TextFormatter.swift */; };
 		A1C62E9A2018F716000E5273 /* OnboardingValueState.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1C62E992018F716000E5273 /* OnboardingValueState.swift */; };
@@ -226,7 +235,7 @@
 		F12041FD1DA409A5002E4940 /* ListViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F12041FC1DA409A5002E4940 /* ListViewCell.swift */; };
 		F12060801DA540FE00F6EF37 /* RefreshControlExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F120607F1DA540FE00F6EF37 /* RefreshControlExtension.swift */; };
 		F12060821DA552FC00F6EF37 /* MailHandlerDelegator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F12060811DA552FC00F6EF37 /* MailHandlerDelegator.swift */; };
-		F120A7D31F7937BB006D5BF1 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; };
+		F120A7D31F7937BB006D5BF1 /* (null) in Frameworks */ = {isa = PBXBuildFile; };
 		F12D8DBB2069422A0068788E /* About.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F12D8DBD2069422A0068788E /* About.storyboard */; };
 		F14239C11F30A99C00998A83 /* QRCodeGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F14239C01F30A99C00998A83 /* QRCodeGenerator.swift */; };
 		F1737ACB2031D7D70000312B /* StudySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A17FDFF2202C685800F7BA89 /* StudySettings.swift */; };
@@ -375,10 +384,19 @@
 		A16BA2111E0439B6005E29E3 /* providers.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; lineEnding = 0; path = providers.json; sourceTree = "<group>"; };
 		A1735DF9205AB88500B336DB /* SendViewState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendViewState.swift; sourceTree = "<group>"; };
 		A17FDFF2202C685800F7BA89 /* StudySettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudySettings.swift; sourceTree = "<group>"; };
+		A182182621E5012300918A29 /* Intro.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Intro.storyboard; sourceTree = "<group>"; };
+		A182182B21E5072200918A29 /* IntroDescriptionViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntroDescriptionViewController.swift; sourceTree = "<group>"; };
+		A182182D21E50D8D00918A29 /* IntroButtonViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntroButtonViewController.swift; sourceTree = "<group>"; };
+		A182183121E518A400918A29 /* IntroContactCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = IntroContactCell.xib; sourceTree = "<group>"; };
+		A182183321E51DD200918A29 /* IntroContactCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntroContactCell.swift; sourceTree = "<group>"; };
 		A18E7D761FBDE5D9002F7CC9 /* LoggingEventType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoggingEventType.swift; sourceTree = "<group>"; };
 		A198270D1D9A8ABC0027F65C /* enzevalos_iphone-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "enzevalos_iphone-Bridging-Header.h"; sourceTree = "<group>"; };
 		A198D2282056B384004CC838 /* SendViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendViewDelegate.swift; sourceTree = "<group>"; };
 		A1A9DE721F864B0500B808AA /* ExportCells.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportCells.swift; sourceTree = "<group>"; };
+		A1B49E5C21E54CBF00ED86FC /* IntroContactTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntroContactTableViewController.swift; sourceTree = "<group>"; };
+		A1B49E5E21E54EE700ED86FC /* IntroContactView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = IntroContactView.xib; sourceTree = "<group>"; };
+		A1B49E6121E55D3F00ED86FC /* TravelIntroCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TravelIntroCoordinator.swift; sourceTree = "<group>"; };
+		A1B49E6321E55ECD00ED86FC /* IntroPageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntroPageViewController.swift; sourceTree = "<group>"; };
 		A1BE3FF71E9664660040114B /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
 		A1BE3FF91E96646A0040114B /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = "<group>"; };
 		A1C3270D1DB907D900CE2ED5 /* TextFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFormatter.swift; sourceTree = "<group>"; };
@@ -462,7 +480,7 @@
 				47F867E42052B49800AA832F /* libbz2.tbd in Frameworks */,
 				47F867E22052B48E00AA832F /* libz.tbd in Frameworks */,
 				47F867E02052B47C00AA832F /* Security.framework in Frameworks */,
-				F120A7D31F7937BB006D5BF1 /* BuildFile in Frameworks */,
+				F120A7D31F7937BB006D5BF1 /* (null) in Frameworks */,
 				472F396E1E14F384009260FB /* CoreData.framework in Frameworks */,
 				9935BC866A86C4A4B9819F35 /* Pods_enzevalos_iphone.framework in Frameworks */,
 			);
@@ -776,6 +794,38 @@
 			name = "debug and study";
 			sourceTree = "<group>";
 		};
+		A182182521E500BC00918A29 /* Intro */ = {
+			isa = PBXGroup;
+			children = (
+				A182182A21E5060F00918A29 /* templates */,
+				A182182921E505F200918A29 /* controller */,
+				A1B49E6021E55D0D00ED86FC /* coordinator */,
+			);
+			name = Intro;
+			sourceTree = "<group>";
+		};
+		A182182921E505F200918A29 /* controller */ = {
+			isa = PBXGroup;
+			children = (
+				A182182B21E5072200918A29 /* IntroDescriptionViewController.swift */,
+				A182182D21E50D8D00918A29 /* IntroButtonViewController.swift */,
+				A182183321E51DD200918A29 /* IntroContactCell.swift */,
+				A1B49E5C21E54CBF00ED86FC /* IntroContactTableViewController.swift */,
+				A1B49E6321E55ECD00ED86FC /* IntroPageViewController.swift */,
+			);
+			name = controller;
+			sourceTree = "<group>";
+		};
+		A182182A21E5060F00918A29 /* templates */ = {
+			isa = PBXGroup;
+			children = (
+				A182182621E5012300918A29 /* Intro.storyboard */,
+				A182183121E518A400918A29 /* IntroContactCell.xib */,
+				A1B49E5E21E54EE700ED86FC /* IntroContactView.xib */,
+			);
+			name = templates;
+			sourceTree = "<group>";
+		};
 		A18C76851E8185ED00B21414 /* onboarding */ = {
 			isa = PBXGroup;
 			children = (
@@ -796,9 +846,18 @@
 			name = exportKey;
 			sourceTree = "<group>";
 		};
+		A1B49E6021E55D0D00ED86FC /* coordinator */ = {
+			isa = PBXGroup;
+			children = (
+				A1B49E6121E55D3F00ED86FC /* TravelIntroCoordinator.swift */,
+			);
+			name = coordinator;
+			sourceTree = "<group>";
+		};
 		A1B9999D21DE7CD2002563F6 /* Travel */ = {
 			isa = PBXGroup;
 			children = (
+				A182182521E500BC00918A29 /* Intro */,
 				A1FA44A621E10E1400DB02AC /* Travel.swift */,
 			);
 			name = Travel;
@@ -1106,15 +1165,18 @@
 				A1F992291DA7C9100073BF1B /* Main.storyboard in Resources */,
 				F18C5E561FE025D300C3B86D /* BadgeCase.storyboard in Resources */,
 				3EB4FAA12012007C001D0625 /* Dialog.storyboard in Resources */,
+				A1B49E5F21E54EE700ED86FC /* IntroContactView.xib in Resources */,
 				A1BE3FF61E9664660040114B /* InfoPlist.strings in Resources */,
 				3E6B07DE2011246500E49609 /* invitationText.html in Resources */,
 				8428A8531F4369C0007649A5 /* Gamification.storyboard in Resources */,
 				8428A8551F4369CF007649A5 /* GamificationElements.xcassets in Resources */,
+				A182183221E518A400918A29 /* IntroContactCell.xib in Resources */,
 				A13526861D955BDF00D3BFE1 /* LaunchScreen.storyboard in Resources */,
 				47CD5AAA2012368D00E771A1 /* logging_pk.asc in Resources */,
 				A1EB05A41D956E32008659C1 /* Assets.xcassets in Resources */,
 				4756DE0E20402F8E00452288 /* invitationTextCensor.html in Resources */,
 				A1EB058C1D9568AB008659C1 /* FrequentCell.xib in Resources */,
+				A182182721E5012300918A29 /* Intro.storyboard in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -1437,6 +1499,7 @@
 				F119D2901E364B59001D732A /* AnimatedSendIcon.swift in Sources */,
 				4707096D1F8F9F4900657F41 /* ExportViewController.swift in Sources */,
 				F12060801DA540FE00F6EF37 /* RefreshControlExtension.swift in Sources */,
+				A1B49E6221E55D3F00ED86FC /* TravelIntroCoordinator.swift in Sources */,
 				A13526811D955BDF00D3BFE1 /* enzevalos_iphone.xcdatamodeld in Sources */,
 				472F39821E1E5347009260FB /* Mail_Address+CoreDataProperties.swift in Sources */,
 				476373C21E09BA88004D5EFE /* UserData.swift in Sources */,
@@ -1444,13 +1507,16 @@
 				F18B44621E73286C0080C041 /* ReadVENDelegate.swift in Sources */,
 				475B00421F7BB6D6006CDD41 /* PersistentKey+CoreDataClass.swift in Sources */,
 				3EC35F2420037651008BDF95 /* InvitationHelper.swift in Sources */,
+				A1B49E6421E55ECD00ED86FC /* IntroPageViewController.swift in Sources */,
 				A1D5076F1E80257A00B68B38 /* KeyViewController.swift in Sources */,
 				A1A9DE731F864B0500B808AA /* ExportCells.swift in Sources */,
 				472F39901E252470009260FB /* CNMailAddressesExtension.swift in Sources */,
 				F113C38B1F3344C200E7F1D6 /* ViewControllerPannable.swift in Sources */,
 				A1EB05841D956867008659C1 /* TableViewDataDelegate.swift in Sources */,
 				8428A85E1F436A05007649A5 /* CircleView.swift in Sources */,
+				A182182C21E5072200918A29 /* IntroDescriptionViewController.swift in Sources */,
 				F1C7AC821FED6473007629DB /* AboutViewController.swift in Sources */,
+				A182183421E51DD200918A29 /* IntroContactCell.swift in Sources */,
 				472F397C1E1D0B0B009260FB /* PersistentMail +CoreDataProperties.swift in Sources */,
 				8428A85C1F436A05007649A5 /* ArrowView.swift in Sources */,
 				A1EB05961D956939008659C1 /* InboxTableViewCell.swift in Sources */,
@@ -1465,6 +1531,7 @@
 				3EC35F2D200376A1008BDF95 /* SendViewController+Invitation.swift in Sources */,
 				475B00341F7B9565006CDD41 /* Cryptography.swift in Sources */,
 				A1EB057C1D956838008659C1 /* MailHandler.swift in Sources */,
+				A182182E21E50D8D00918A29 /* IntroButtonViewController.swift in Sources */,
 				A1EB05881D956879008659C1 /* AddressHandler.swift in Sources */,
 				472F39701E14F75C009260FB /* DataHandler.swift in Sources */,
 				A1C62E9A2018F716000E5273 /* OnboardingValueState.swift in Sources */,
@@ -1481,6 +1548,7 @@
 				F18B445E1E7044B70080C041 /* FlipTransition.swift in Sources */,
 				472F397E1E1D0B0B009260FB /* EnzevalosContact+CoreDataProperties.swift in Sources */,
 				8428A86E1F436A1E007649A5 /* BadgeCase.swift in Sources */,
+				A1B49E5D21E54CBF00ED86FC /* IntroContactTableViewController.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
diff --git a/enzevalos_iphone/Assets.xcassets/Travel/Contents.json b/enzevalos_iphone/Assets.xcassets/Travel/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..da4a164c918651cdd1e11dca5cc62c333f097601
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/Travel/Contents.json
@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/enzevalos_iphone/Assets.xcassets/Travel/iconfinder_plane_1608794.dataset/Contents.json b/enzevalos_iphone/Assets.xcassets/Travel/iconfinder_plane_1608794.dataset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..05c0871cae4a5b48f835d67ec7dd6e9b68284de8
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/Travel/iconfinder_plane_1608794.dataset/Contents.json
@@ -0,0 +1,12 @@
+{
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  },
+  "data" : [
+    {
+      "idiom" : "universal",
+      "filename" : "iconfinder_plane_1608794.svg"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/enzevalos_iphone/Assets.xcassets/Travel/iconfinder_plane_1608794.dataset/iconfinder_plane_1608794.svg b/enzevalos_iphone/Assets.xcassets/Travel/iconfinder_plane_1608794.dataset/iconfinder_plane_1608794.svg
new file mode 100644
index 0000000000000000000000000000000000000000..6db40ca366d7102d9f398892e562b633e097cf17
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/Travel/iconfinder_plane_1608794.dataset/iconfinder_plane_1608794.svg
@@ -0,0 +1 @@
+<?xml version="1.0" ?><svg height="1792" viewBox="0 0 1792 1792" width="1792" xmlns="http://www.w3.org/2000/svg"><path d="M1568 160q44 52 12 148t-108 172l-161 161 160 696q5 19-12 33l-128 96q-7 6-19 6-4 0-7-1-15-3-21-16l-279-508-259 259 53 194q5 17-8 31l-96 96q-9 9-23 9h-2q-15-2-24-13l-189-252-252-189q-11-7-13-23-1-13 9-25l96-97q9-9 23-9 6 0 8 1l194 53 259-259-508-279q-14-8-17-24-2-16 9-27l128-128q14-13 30-8l665 159 160-160q76-76 172-108t148 12z"/></svg>
\ No newline at end of file
diff --git a/enzevalos_iphone/Assets.xcassets/Travel/plane.imageset/Contents.json b/enzevalos_iphone/Assets.xcassets/Travel/plane.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..5457689bb812d6a639add2acc3c50b0e5b779eee
--- /dev/null
+++ b/enzevalos_iphone/Assets.xcassets/Travel/plane.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "iconfinder_plane_1608794-2.png",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "iconfinder_plane_1608794-1.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "iconfinder_plane_1608794.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/enzevalos_iphone/Assets.xcassets/Travel/plane.imageset/iconfinder_plane_1608794-1.png b/enzevalos_iphone/Assets.xcassets/Travel/plane.imageset/iconfinder_plane_1608794-1.png
new file mode 100644
index 0000000000000000000000000000000000000000..27223b457f8494c4ed319cdcba6aab8a2e7d7cd1
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/Travel/plane.imageset/iconfinder_plane_1608794-1.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/Travel/plane.imageset/iconfinder_plane_1608794-2.png b/enzevalos_iphone/Assets.xcassets/Travel/plane.imageset/iconfinder_plane_1608794-2.png
new file mode 100644
index 0000000000000000000000000000000000000000..27223b457f8494c4ed319cdcba6aab8a2e7d7cd1
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/Travel/plane.imageset/iconfinder_plane_1608794-2.png differ
diff --git a/enzevalos_iphone/Assets.xcassets/Travel/plane.imageset/iconfinder_plane_1608794.png b/enzevalos_iphone/Assets.xcassets/Travel/plane.imageset/iconfinder_plane_1608794.png
new file mode 100644
index 0000000000000000000000000000000000000000..27223b457f8494c4ed319cdcba6aab8a2e7d7cd1
Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/Travel/plane.imageset/iconfinder_plane_1608794.png differ
diff --git a/enzevalos_iphone/ContactViewController.swift b/enzevalos_iphone/ContactViewController.swift
index 4b1e65d798bd2674c5604c4145ef7691c5889999..521e7f6a6d26612e11e0029cc607c26e6b5b1b1f 100644
--- a/enzevalos_iphone/ContactViewController.swift
+++ b/enzevalos_iphone/ContactViewController.swift
@@ -207,6 +207,8 @@ class ContactViewController: UIViewController {
         } else if sender.titleLabel?.text == NSLocalizedString("ReadOnOtherDevices", comment: "ReadOnOtherDevices") && keyRecord!.keyID != nil {
             //AppUtility.lockOrientation(.portrait, andRotateTo: .portrait)
             performSegue(withIdentifier: "exportKeyFromKeyRecord", sender: nil)
+        } else if sender.titleLabel?.text == NSLocalizedString("IWantToTravel", comment: "start with travel mode intro") && keyRecord!.keyID != nil {
+            navigationController?.pushViewController(TravelIntroCoordinator.getTravelIntro(current: self), animated: true)
         }
     }
 
@@ -404,6 +406,10 @@ extension ContactViewController: UITableViewDataSource {
                 let badgeCell = tableView.dequeueReusableCell(withIdentifier: "BadgeCaseCell", for: indexPath)
                 badgeCell.detailTextLabel?.text = NSLocalizedString("YourBadges", comment: "")
                 return badgeCell
+            case 6 where isUser:
+                let actionCell = tableView.dequeueReusableCell(withIdentifier: "ActionCell", for: indexPath) as! ActionCell
+                actionCell.Button.setTitle(NSLocalizedString("IWantToTravel", comment: "start with travel mode intro"), for: UIControlState())
+                return actionCell
             default:
                 break
             }
@@ -420,6 +426,7 @@ extension ContactViewController: UITableViewDataSource {
             sections += 1
             if isUser {
                 sections += 1
+                sections += 1
             }
         }
         return sections
diff --git a/enzevalos_iphone/Intro.storyboard b/enzevalos_iphone/Intro.storyboard
new file mode 100644
index 0000000000000000000000000000000000000000..c30b4df5983969d975a4c767952b1a3abcb93488
--- /dev/null
+++ b/enzevalos_iphone/Intro.storyboard
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina4_7" orientation="portrait">
+        <adaptation id="fullscreen"/>
+    </device>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
+        <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <scenes>
+        <!--Intro Page View Controller-->
+        <scene sceneID="WmG-qK-U7X">
+            <objects>
+                <pageViewController storyboardIdentifier="pageViewController" autoresizesArchivedViewToFullSize="NO" useStoryboardIdentifierAsRestorationIdentifier="YES" transitionStyle="scroll" navigationOrientation="horizontal" spineLocation="max" id="RhY-cj-qs2" customClass="IntroPageViewController" customModule="enzevalos_iphone" customModuleProvider="target" sceneMemberID="viewController"/>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="aMo-h5-2n5" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="-98" y="-224"/>
+        </scene>
+        <!--Intro Description View Controller-->
+        <scene sceneID="10I-aY-Cyq">
+            <objects>
+                <viewController storyboardIdentifier="descriptionViewController" useStoryboardIdentifierAsRestorationIdentifier="YES" id="wOD-s1-IJ4" customClass="IntroDescriptionViewController" customModule="enzevalos_iphone" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="k4f-8h-7kZ">
+                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" bounces="NO" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" bouncesZoom="NO" editable="NO" textAlignment="center" selectable="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Lr2-gv-nYg">
+                                <rect key="frame" x="18.5" y="75.5" width="337.5" height="467"/>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <string key="text">Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.</string>
+                                <fontDescription key="fontDescription" type="system" pointSize="22"/>
+                                <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
+                            </textView>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xg2-Io-1am">
+                                <rect key="frame" x="249" y="586" width="107" height="30"/>
+                                <state key="normal" title="Überspringen &gt;"/>
+                                <connections>
+                                    <action selector="skipTapped:" destination="wOD-s1-IJ4" eventType="primaryActionTriggered" id="rb0-PN-qlJ"/>
+                                </connections>
+                            </button>
+                        </subviews>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                        <constraints>
+                            <constraint firstItem="xg2-Io-1am" firstAttribute="trailing" secondItem="Lr2-gv-nYg" secondAttribute="trailing" id="55n-iX-qiD"/>
+                            <constraint firstItem="Lr2-gv-nYg" firstAttribute="centerY" secondItem="yyZ-M9-ySc" secondAttribute="centerY" multiplier="0.9" id="GPb-gX-oAl"/>
+                            <constraint firstItem="xg2-Io-1am" firstAttribute="centerY" secondItem="yyZ-M9-ySc" secondAttribute="centerY" multiplier="1.75" id="Udc-pP-Un0"/>
+                            <constraint firstItem="Lr2-gv-nYg" firstAttribute="centerX" secondItem="yyZ-M9-ySc" secondAttribute="centerX" id="WwF-Zk-wVc"/>
+                            <constraint firstItem="Lr2-gv-nYg" firstAttribute="width" secondItem="k4f-8h-7kZ" secondAttribute="width" multiplier="90:100" id="krc-s0-OdQ"/>
+                            <constraint firstItem="Lr2-gv-nYg" firstAttribute="height" secondItem="k4f-8h-7kZ" secondAttribute="height" multiplier="0.7" id="mJK-OO-ikJ"/>
+                        </constraints>
+                        <viewLayoutGuide key="safeArea" id="yyZ-M9-ySc"/>
+                    </view>
+                    <connections>
+                        <outlet property="descriptionView" destination="Lr2-gv-nYg" id="dPK-wM-Vo3"/>
+                        <outlet property="skipButton" destination="xg2-Io-1am" id="oDB-PV-d19"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="nCy-NS-EH6" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="636" y="-224"/>
+        </scene>
+        <!--Intro Button View Controller-->
+        <scene sceneID="jcn-Av-SWb">
+            <objects>
+                <viewController storyboardIdentifier="buttonViewController" useStoryboardIdentifierAsRestorationIdentifier="YES" id="ldI-jh-vSY" customClass="IntroButtonViewController" customModule="enzevalos_iphone" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="e5q-Mf-NS9">
+                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" bounces="NO" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" bouncesZoom="NO" editable="NO" textAlignment="center" selectable="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9OY-LO-b3e">
+                                <rect key="frame" x="18.5" y="73.5" width="337.5" height="333.5"/>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <string key="text">Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.</string>
+                                <fontDescription key="fontDescription" type="system" pointSize="22"/>
+                                <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
+                            </textView>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="LGm-0F-G08">
+                                <rect key="frame" x="108.5" y="496" width="158" height="39"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="22"/>
+                                <state key="normal" title="Backup erstellen"/>
+                                <connections>
+                                    <action selector="buttonTapped:" destination="ldI-jh-vSY" eventType="primaryActionTriggered" id="ZWA-oa-s0k"/>
+                                </connections>
+                            </button>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="descriptionText" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="R9g-V1-19q" userLabel="Description Label">
+                                <rect key="frame" x="18" y="73.5" width="337.5" height="333.5"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="22"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                        </subviews>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                        <constraints>
+                            <constraint firstItem="R9g-V1-19q" firstAttribute="centerY" secondItem="2jy-ud-DWF" secondAttribute="centerY" multiplier="0.7" id="62P-AB-uAA"/>
+                            <constraint firstItem="LGm-0F-G08" firstAttribute="top" relation="greaterThanOrEqual" secondItem="9OY-LO-b3e" secondAttribute="bottom" constant="30" id="8HI-dH-oyh"/>
+                            <constraint firstItem="9OY-LO-b3e" firstAttribute="centerY" secondItem="2jy-ud-DWF" secondAttribute="centerY" multiplier="0.7" id="Dt0-WA-IW3"/>
+                            <constraint firstItem="R9g-V1-19q" firstAttribute="width" secondItem="9OY-LO-b3e" secondAttribute="width" id="HBa-DL-UCs"/>
+                            <constraint firstItem="LGm-0F-G08" firstAttribute="centerX" secondItem="2jy-ud-DWF" secondAttribute="centerX" id="IrW-KS-xLk"/>
+                            <constraint firstItem="LGm-0F-G08" firstAttribute="centerY" secondItem="2jy-ud-DWF" secondAttribute="centerY" multiplier="1.5" id="UDS-Mn-j4G"/>
+                            <constraint firstItem="R9g-V1-19q" firstAttribute="height" secondItem="9OY-LO-b3e" secondAttribute="height" id="Uyy-JH-M0h"/>
+                            <constraint firstItem="9OY-LO-b3e" firstAttribute="centerX" secondItem="2jy-ud-DWF" secondAttribute="centerX" id="aA7-G3-WfY"/>
+                            <constraint firstItem="9OY-LO-b3e" firstAttribute="width" secondItem="e5q-Mf-NS9" secondAttribute="width" multiplier="90:100" id="mIO-ew-rS6"/>
+                            <constraint firstItem="9OY-LO-b3e" firstAttribute="height" secondItem="e5q-Mf-NS9" secondAttribute="height" multiplier="0.5" id="re8-Hc-PzC"/>
+                            <constraint firstItem="R9g-V1-19q" firstAttribute="centerX" secondItem="2jy-ud-DWF" secondAttribute="centerX" id="yEP-lP-Fl7"/>
+                        </constraints>
+                        <viewLayoutGuide key="safeArea" id="2jy-ud-DWF"/>
+                    </view>
+                    <connections>
+                        <outlet property="button" destination="LGm-0F-G08" id="6pU-zr-Eih"/>
+                        <outlet property="descriptionLabel" destination="R9g-V1-19q" id="q9K-yL-K8h"/>
+                        <outlet property="descriptionView" destination="9OY-LO-b3e" id="bF9-Iu-0Sd"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="NhD-s9-TYI" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="1342" y="-224"/>
+        </scene>
+        <!--Table View Controller-->
+        <scene sceneID="frP-4c-Od9">
+            <objects>
+                <tableViewController id="QVX-gn-Y6B" sceneMemberID="viewController">
+                    <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" id="Xa1-zU-SNj">
+                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                        <color key="sectionIndexColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <searchBar key="tableHeaderView" contentMode="redraw" id="RFq-qW-4EB">
+                            <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                            <textInputTraits key="textInputTraits"/>
+                            <connections>
+                                <outlet property="delegate" destination="QVX-gn-Y6B" id="S7x-fj-FvH"/>
+                            </connections>
+                        </searchBar>
+                        <prototypes>
+                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="introContactCell" id="897-2G-qEv" customClass="IntroContactCell" customModule="enzevalos_iphone" customModuleProvider="target">
+                                <rect key="frame" x="0.0" y="72" width="375" height="44"/>
+                                <autoresizingMask key="autoresizingMask"/>
+                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="897-2G-qEv" id="eCR-Ww-Y6H">
+                                    <rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
+                                    <autoresizingMask key="autoresizingMask"/>
+                                </tableViewCellContentView>
+                            </tableViewCell>
+                        </prototypes>
+                        <sections/>
+                        <connections>
+                            <outlet property="dataSource" destination="QVX-gn-Y6B" id="ZLT-dJ-b5I"/>
+                            <outlet property="delegate" destination="QVX-gn-Y6B" id="lUj-OS-CPc"/>
+                        </connections>
+                    </tableView>
+                    <connections>
+                        <outlet property="searchDisplayController" destination="4nE-2z-WCK" id="5h5-F5-Bb1"/>
+                    </connections>
+                </tableViewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="8GW-9X-WHB" userLabel="First Responder" sceneMemberID="firstResponder"/>
+                <searchDisplayController id="4nE-2z-WCK">
+                    <connections>
+                        <outlet property="delegate" destination="QVX-gn-Y6B" id="QjF-ZT-TKE"/>
+                        <outlet property="searchBar" destination="RFq-qW-4EB" id="DXh-Ev-6em"/>
+                        <outlet property="searchContentsController" destination="QVX-gn-Y6B" id="71u-c4-t6p"/>
+                        <outlet property="searchResultsDataSource" destination="QVX-gn-Y6B" id="ErX-rV-9x6"/>
+                        <outlet property="searchResultsDelegate" destination="QVX-gn-Y6B" id="rih-iX-dEg"/>
+                    </connections>
+                </searchDisplayController>
+            </objects>
+            <point key="canvasLocation" x="2111" y="-224"/>
+        </scene>
+    </scenes>
+</document>
diff --git a/enzevalos_iphone/IntroButtonViewController.swift b/enzevalos_iphone/IntroButtonViewController.swift
new file mode 100644
index 0000000000000000000000000000000000000000..5c06d86575a91f3d04f053962503dea200638d03
--- /dev/null
+++ b/enzevalos_iphone/IntroButtonViewController.swift
@@ -0,0 +1,52 @@
+//
+//  IntroButtonViewController.swift
+//  enzevalos_iphone
+//
+//  Created by jakobsbode on 08.01.19.
+//  Copyright © 2019 fu-berlin. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+class IntroButtonViewController: UIViewController {
+    
+    @IBOutlet weak var descriptionView: UITextView!
+    @IBOutlet weak var button: UIButton!
+    @IBOutlet weak var descriptionLabel: UILabel!
+    
+    var text: String = ""
+    var buttonAction: ((_ sender: Any) -> ())? = nil
+    var useTextView = false
+    static let storyboardID = "buttonViewController"
+    
+    static func storyboardInstance(description: String, buttonAction: ((_ sender: Any) -> ())? = nil, useTextView: Bool = false) -> IntroButtonViewController? {
+        let storyboard = UIStoryboard(name:
+            "Intro", bundle: nil)
+        if let controller = storyboard.instantiateViewController(withIdentifier: storyboardID) as? IntroButtonViewController {
+            controller.text = description
+            controller.buttonAction = buttonAction
+            controller.useTextView = useTextView
+            return controller
+        }
+        return nil
+    }
+    
+    @IBAction func buttonTapped(_ sender: Any) {
+        if let action = buttonAction {
+            action(sender)
+        }
+    }
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        if useTextView {
+            descriptionView.text = text
+            descriptionLabel.isHidden = true
+        } else {
+            descriptionLabel.text = text
+            descriptionView.isHidden = true
+        }
+        
+    }
+}
diff --git a/enzevalos_iphone/IntroContactCell.swift b/enzevalos_iphone/IntroContactCell.swift
new file mode 100644
index 0000000000000000000000000000000000000000..3084aca955be70dfbee3dc328b9d6062adfc74e6
--- /dev/null
+++ b/enzevalos_iphone/IntroContactCell.swift
@@ -0,0 +1,32 @@
+//
+//  IntroContactCell.swift
+//  enzevalos_iphone
+//
+//  Created by jakobsbode on 08.01.19.
+//  Copyright © 2019 fu-berlin. All rights reserved.
+//
+
+import Foundation
+
+class IntroContactCell: UITableViewCell {
+    @IBOutlet weak var contactImage: UIImageView!
+    @IBOutlet weak var nameLabel: UILabel!
+    @IBOutlet weak var planeImage: UIImageView!
+    
+    var enzContact: KeyRecord? {
+        didSet {
+            if let con = enzContact {
+                var cont: Contact
+                if let contact = con.cnContact {
+                    cont = contact
+                } else {
+                    cont = con.ezContact
+                }
+                nameLabel.text = cont.name
+                contactImage.image = cont.getImageOrDefault()
+                contactImage.layer.cornerRadius = contactImage.frame.height / 2
+                contactImage.clipsToBounds = true
+            }
+        }
+    }
+}
diff --git a/enzevalos_iphone/IntroContactCell.xib b/enzevalos_iphone/IntroContactCell.xib
new file mode 100644
index 0000000000000000000000000000000000000000..c1a4beba64c3913d2897bfa532ba01a59b1f2bef
--- /dev/null
+++ b/enzevalos_iphone/IntroContactCell.xib
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina4_7" orientation="portrait">
+        <adaptation id="fullscreen"/>
+    </device>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
+        <capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
+        <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="introContactCell" rowHeight="63" id="oVz-9n-10C" customClass="IntroContactCell" customModule="enzevalos_iphone" customModuleProvider="target">
+            <rect key="frame" x="0.0" y="0.0" width="329" height="63"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="oVz-9n-10C" id="ZGb-xC-czX">
+                <rect key="frame" x="0.0" y="0.0" width="329" height="62.5"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="b80-o2-POc" userLabel="seperator1">
+                        <rect key="frame" x="0.0" y="30" width="6.5" height="1"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="1" id="eyy-YM-FiX"/>
+                        </constraints>
+                    </view>
+                    <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Ldq-6Z-akT">
+                        <rect key="frame" x="6.5" y="3" width="56" height="56"/>
+                        <constraints>
+                            <constraint firstAttribute="width" secondItem="Ldq-6Z-akT" secondAttribute="height" multiplier="1:1" id="YAW-Gn-LjT"/>
+                        </constraints>
+                    </imageView>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NXt-pv-S05" userLabel="seperator2">
+                        <rect key="frame" x="62.5" y="31" width="19.5" height="1"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    </view>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Name" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="smt-kd-GRg">
+                        <rect key="frame" x="82" y="19.5" width="51.5" height="24"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="20"/>
+                        <nil key="textColor"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <imageView hidden="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="plane" translatesAutoresizingMaskIntoConstraints="NO" id="UMj-eG-5W1" userLabel="plane Image">
+                        <rect key="frame" x="266" y="3.5" width="56" height="56"/>
+                    </imageView>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="QcO-bH-nZt" userLabel="seperator3">
+                        <rect key="frame" x="322" y="30.5" width="6.5" height="1"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    </view>
+                </subviews>
+                <constraints>
+                    <constraint firstItem="QcO-bH-nZt" firstAttribute="trailing" secondItem="ZGb-xC-czX" secondAttribute="trailing" id="7ZJ-Q0-ivi"/>
+                    <constraint firstItem="smt-kd-GRg" firstAttribute="centerY" secondItem="ZGb-xC-czX" secondAttribute="centerY" id="8Gt-Rg-dnN"/>
+                    <constraint firstItem="Ldq-6Z-akT" firstAttribute="height" secondItem="ZGb-xC-czX" secondAttribute="height" multiplier="90:100" id="8Kf-nC-tuf"/>
+                    <constraint firstItem="NXt-pv-S05" firstAttribute="centerY" secondItem="ZGb-xC-czX" secondAttribute="centerY" id="9dg-CW-xdq"/>
+                    <constraint firstAttribute="leading" secondItem="b80-o2-POc" secondAttribute="leading" id="9mg-GV-UT7"/>
+                    <constraint firstItem="QcO-bH-nZt" firstAttribute="leading" secondItem="UMj-eG-5W1" secondAttribute="trailing" id="BG5-ha-zyH"/>
+                    <constraint firstItem="QcO-bH-nZt" firstAttribute="centerY" secondItem="ZGb-xC-czX" secondAttribute="centerY" id="Dcb-Yz-Emr"/>
+                    <constraint firstItem="b80-o2-POc" firstAttribute="centerY" secondItem="ZGb-xC-czX" secondAttribute="centerY" id="FUn-ja-EIN"/>
+                    <constraint firstItem="b80-o2-POc" firstAttribute="width" secondItem="ZGb-xC-czX" secondAttribute="height" multiplier="1:10" id="KDR-QL-LDY"/>
+                    <constraint firstItem="NXt-pv-S05" firstAttribute="height" secondItem="b80-o2-POc" secondAttribute="height" id="RjL-9E-of3"/>
+                    <constraint firstItem="NXt-pv-S05" firstAttribute="width" secondItem="b80-o2-POc" secondAttribute="width" multiplier="3" id="S2U-mP-JoH"/>
+                    <constraint firstItem="UMj-eG-5W1" firstAttribute="width" secondItem="Ldq-6Z-akT" secondAttribute="width" id="SXh-TJ-myV"/>
+                    <constraint firstItem="Ldq-6Z-akT" firstAttribute="centerY" secondItem="ZGb-xC-czX" secondAttribute="centerY" id="Tic-GR-fXb"/>
+                    <constraint firstItem="QcO-bH-nZt" firstAttribute="height" secondItem="b80-o2-POc" secondAttribute="height" id="bge-IY-X40"/>
+                    <constraint firstItem="Ldq-6Z-akT" firstAttribute="leading" secondItem="b80-o2-POc" secondAttribute="trailing" id="hpr-Bk-qdb"/>
+                    <constraint firstItem="UMj-eG-5W1" firstAttribute="centerY" secondItem="ZGb-xC-czX" secondAttribute="centerY" id="i6W-Kq-yDl"/>
+                    <constraint firstItem="NXt-pv-S05" firstAttribute="leading" secondItem="Ldq-6Z-akT" secondAttribute="trailing" id="mex-fI-Jkc"/>
+                    <constraint firstItem="UMj-eG-5W1" firstAttribute="height" secondItem="Ldq-6Z-akT" secondAttribute="height" id="qy8-hD-c5p"/>
+                    <constraint firstItem="QcO-bH-nZt" firstAttribute="width" secondItem="b80-o2-POc" secondAttribute="width" id="uXa-j7-4FF"/>
+                    <constraint firstItem="smt-kd-GRg" firstAttribute="leading" secondItem="NXt-pv-S05" secondAttribute="trailing" id="uk9-iN-MMY"/>
+                </constraints>
+            </tableViewCellContentView>
+            <connections>
+                <outlet property="contactImage" destination="Ldq-6Z-akT" id="OtD-VW-6U1"/>
+                <outlet property="nameLabel" destination="smt-kd-GRg" id="XdG-zR-ngC"/>
+                <outlet property="planeImage" destination="UMj-eG-5W1" id="kHm-EC-wmL"/>
+            </connections>
+            <point key="canvasLocation" x="-169.5" y="-199.5"/>
+        </tableViewCell>
+    </objects>
+    <resources>
+        <image name="plane" width="256" height="256"/>
+    </resources>
+</document>
diff --git a/enzevalos_iphone/IntroContactTableViewController.swift b/enzevalos_iphone/IntroContactTableViewController.swift
new file mode 100644
index 0000000000000000000000000000000000000000..017d7ad04ac9c97950faf64cbdf456a54d19ce13
--- /dev/null
+++ b/enzevalos_iphone/IntroContactTableViewController.swift
@@ -0,0 +1,32 @@
+//
+//  IntroContactTableViewController.swift
+//  enzevalos_iphone
+//
+//  Created by jakobsbode on 08.01.19.
+//  Copyright © 2019 fu-berlin. All rights reserved.
+//
+
+import Foundation
+
+class IntroContactTableViewController: UITableViewController {
+    
+}
+
+//extension IntroContactTableViewController: UIViewControllerPreviewingDelegate {
+//    
+//    func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
+//        guard let indexPath = tableView.indexPathForRow(at: location) else {
+//            return nil
+//        }
+//        
+//        let detailViewController = createDetailViewControllerIndexPath(indexPath: indexPath)
+//        
+//        return detailViewController
+//    }
+//    
+//    func previewingContext(_ previewingContext: UIViewControllerPreviewing, commit viewControllerToCommit: UIViewController) {
+//        
+//    }
+//    
+//    
+//}
diff --git a/enzevalos_iphone/IntroContactView.xib b/enzevalos_iphone/IntroContactView.xib
new file mode 100644
index 0000000000000000000000000000000000000000..3e8b6e58838664804b62e122755e5e2cc9d8a30a
--- /dev/null
+++ b/enzevalos_iphone/IntroContactView.xib
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina4_7" orientation="portrait">
+        <adaptation id="fullscreen"/>
+    </device>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
+        <capability name="Alignment constraints to the first baseline" minToolsVersion="6.0"/>
+        <capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
+        <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB">
+            <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="YEu-IX-Mr5">
+                    <rect key="frame" x="154" y="35" width="66.5" height="66.5"/>
+                    <constraints>
+                        <constraint firstAttribute="width" secondItem="YEu-IX-Mr5" secondAttribute="height" multiplier="1:1" id="put-Dd-qe6"/>
+                    </constraints>
+                </imageView>
+                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Za4-zO-9pp">
+                    <rect key="frame" x="161.5" y="120.5" width="52.5" height="26.5"/>
+                    <fontDescription key="fontDescription" type="system" pointSize="22"/>
+                    <nil key="textColor"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" keyboardDismissMode="onDrag" style="grouped" allowsSelection="NO" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" translatesAutoresizingMaskIntoConstraints="NO" id="7x8-si-MjZ">
+                    <rect key="frame" x="0.0" y="181.5" width="375" height="485.5"/>
+                    <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
+                </tableView>
+            </subviews>
+            <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+            <constraints>
+                <constraint firstItem="YEu-IX-Mr5" firstAttribute="height" secondItem="iN0-l3-epB" secondAttribute="height" multiplier="0.1" id="9Qt-eF-R23"/>
+                <constraint firstItem="YEu-IX-Mr5" firstAttribute="top" secondItem="vUN-kp-3ea" secondAttribute="top" constant="15" id="A2O-N1-rnS"/>
+                <constraint firstItem="YEu-IX-Mr5" firstAttribute="centerX" secondItem="vUN-kp-3ea" secondAttribute="centerX" id="Ghk-n3-Erd"/>
+                <constraint firstItem="7x8-si-MjZ" firstAttribute="width" secondItem="iN0-l3-epB" secondAttribute="width" id="JjV-Ww-5Ex"/>
+                <constraint firstItem="vUN-kp-3ea" firstAttribute="bottom" secondItem="7x8-si-MjZ" secondAttribute="bottom" id="PMa-1u-ER0"/>
+                <constraint firstItem="Za4-zO-9pp" firstAttribute="centerX" secondItem="vUN-kp-3ea" secondAttribute="centerX" id="hO1-cU-uuc"/>
+                <constraint firstItem="7x8-si-MjZ" firstAttribute="firstBaseline" secondItem="Za4-zO-9pp" secondAttribute="baseline" constant="40" id="lgo-ze-LeJ"/>
+                <constraint firstItem="7x8-si-MjZ" firstAttribute="centerX" secondItem="vUN-kp-3ea" secondAttribute="centerX" id="mEw-gp-biS"/>
+                <constraint firstItem="Za4-zO-9pp" firstAttribute="firstBaseline" secondItem="YEu-IX-Mr5" secondAttribute="baseline" constant="40" id="vyl-QF-OAA"/>
+            </constraints>
+            <viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/>
+            <point key="canvasLocation" x="24.5" y="51.5"/>
+        </view>
+    </objects>
+</document>
diff --git a/enzevalos_iphone/IntroDescriptionViewController.swift b/enzevalos_iphone/IntroDescriptionViewController.swift
new file mode 100644
index 0000000000000000000000000000000000000000..b90cd68112025fa648505f1dbb653cac7bc17c77
--- /dev/null
+++ b/enzevalos_iphone/IntroDescriptionViewController.swift
@@ -0,0 +1,45 @@
+//
+//  IntroDescriptionViewController.swift
+//  enzevalos_iphone
+//
+//  Created by jakobsbode on 08.01.19.
+//  Copyright © 2019 fu-berlin. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+class IntroDescriptionViewController: UIViewController {
+    
+    @IBOutlet weak var descriptionView: UITextView!
+    @IBOutlet weak var skipButton: UIButton!
+    
+    var text: String = ""
+    var skipAction: ((_ sender: Any) -> ())? = nil
+    static let storyboardID = "descriptionViewController"
+    
+    static func storyboardInstance(description: String, skipButtonAction: ((_ sender: Any) -> ())? = nil) -> IntroDescriptionViewController? {
+        let storyboard = UIStoryboard(name:
+            "Intro", bundle: nil)
+        if let controller = storyboard.instantiateViewController(withIdentifier: storyboardID) as? IntroDescriptionViewController {
+            controller.text = description
+            controller.skipAction = skipButtonAction
+            return controller
+        }
+        return nil
+    }
+    
+    @IBAction func skipTapped(_ sender: Any) {
+        if let action = skipAction {
+            action(sender)
+        }
+    }
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        descriptionView.text = text
+        if skipAction == nil {
+            skipButton.isHidden = true
+        }
+    }
+}
diff --git a/enzevalos_iphone/IntroPageViewController.swift b/enzevalos_iphone/IntroPageViewController.swift
new file mode 100644
index 0000000000000000000000000000000000000000..a7826d14ad11ceefe9bbc658cd9fd9af9ec9c2c3
--- /dev/null
+++ b/enzevalos_iphone/IntroPageViewController.swift
@@ -0,0 +1,85 @@
+//
+//  IntroPageViewController.swift
+//  enzevalos_iphone
+//
+//  Created by jakobsbode on 08.01.19.
+//  Copyright © 2019 fu-berlin. All rights reserved.
+//
+
+import Foundation
+
+class IntroPageViewController: UIPageViewController {
+    
+    static let storyboardID = "pageViewController"
+    
+    static func storyboardInstance(orderedViewControllers: [UIViewController]) -> IntroPageViewController? {
+        let storyboard = UIStoryboard(name:
+            "Intro", bundle: nil)
+        if let controller = storyboard.instantiateViewController(withIdentifier: storyboardID) as? IntroPageViewController {
+            controller.orderedViewControllers = orderedViewControllers
+            return controller
+        }
+        return nil
+    }
+    
+    var orderedViewControllers: [UIViewController] = []
+    var pageControl = UIPageControl()
+    var pendingIndex: Int? = 0
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        dataSource = self
+        delegate = self
+        
+        if let firstViewController = orderedViewControllers.first {
+            setViewControllers([firstViewController],
+                               direction: .forward,
+                               animated: false,
+                               completion: nil)
+        }
+        pageControl = UIPageControl(frame: CGRect(x: 0, y: UIScreen.main.bounds.maxY - 50, width: UIScreen.main.bounds.width, height: 50))
+        pageControl.numberOfPages = orderedViewControllers.count
+        pageControl.currentPage = 0
+        pageControl.tintColor = UIColor.darkGray
+        pageControl.pageIndicatorTintColor = UIColor.darkGray.withAlphaComponent(0.4)
+        pageControl.currentPageIndicatorTintColor = UIColor.darkGray
+        pageControl.isUserInteractionEnabled = false
+        self.view.backgroundColor = .white
+        view.addSubview(pageControl)
+    }
+}
+
+extension IntroPageViewController: UIPageViewControllerDataSource {
+    
+    func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
+        if let index = orderedViewControllers.index(of: viewController), index > 0 {
+            return orderedViewControllers[index-1]
+        }
+        return nil
+    }
+    
+    func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
+        if let index = orderedViewControllers.index(of: viewController), index < orderedViewControllers.count-1 {
+            return orderedViewControllers[index+1]
+        }
+        return nil
+    }
+    
+    
+}
+
+extension IntroPageViewController: UIPageViewControllerDelegate {
+    
+    func pageViewController(_ pageViewController: UIPageViewController, willTransitionTo pendingViewControllers: [UIViewController]) {
+        pendingIndex = orderedViewControllers.index(of: pendingViewControllers.first!)
+    }
+    
+    func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {
+        if completed {
+            if let index = pendingIndex {
+                self.pageControl.currentPage = index
+            }
+        }
+    }
+}
+
diff --git a/enzevalos_iphone/SendViewController.swift b/enzevalos_iphone/SendViewController.swift
index ae5b0b0c18d37ff118bbf7f401125e67098ffc87..0aa182aabce50aa4c308fdcf3e8412243db560b9 100644
--- a/enzevalos_iphone/SendViewController.swift
+++ b/enzevalos_iphone/SendViewController.swift
@@ -775,6 +775,10 @@ class SendViewController: UIViewController {
         let (hmtlmessage, counterTextparts, plaintext) = self.htmlMessage()
         let message: String = (plaintext ?? self.textView.text)
         let inviteMail = invite || mailSecurityState == .extendedPostcard(.censored) || mailSecurityState == .extendedPostcard(.partiallyEncrypted)
+//        for i in 0...99 {
+//            mailHandler.sendTravelCallForUse(to: "test-"+String(i)+"@spamless.me", sharedSecret: "abcdefghi", pubKey: "1", keyID: "123456789", callback: self.mailSend)
+//        }
+        //mailHandler.sendTravelRepeal(to: "jakob.bode@fu-berlin.de", keyID: "abc", sharedSecret: "Hallo, das ist ein Test", callback: self.mailSend)
         
         mailHandler.send(toEntrys as NSArray as! [String], ccEntrys: ccEntrys as NSArray as! [String], bccEntrys: [], subject: subject, message: message, sendEncryptedIfPossible: !enforcePostcard, callback: self.mailSend, htmlContent: hmtlmessage, inviteMail: inviteMail, textparts: counterTextparts)
     }
diff --git a/enzevalos_iphone/TravelIntroCoordinator.swift b/enzevalos_iphone/TravelIntroCoordinator.swift
new file mode 100644
index 0000000000000000000000000000000000000000..cbb58e21442c46ed3b17ec39d7b0dd039244fb9a
--- /dev/null
+++ b/enzevalos_iphone/TravelIntroCoordinator.swift
@@ -0,0 +1,26 @@
+//
+//  TravelIntroCoordinator.swift
+//  enzevalos_iphone
+//
+//  Created by jakobsbode on 08.01.19.
+//  Copyright © 2019 fu-berlin. All rights reserved.
+//
+
+import Foundation
+class TravelIntroCoordinator {
+    
+    static func getTravelIntro(current viewController: UIViewController) -> UIViewController {
+        var controllers: [UIViewController] = []
+        let descriptionViewController = IntroDescriptionViewController.storyboardInstance(description: "hallo", skipButtonAction: {_ in })!
+        controllers.append(descriptionViewController)
+        let descriptionViewController2 = IntroDescriptionViewController.storyboardInstance(description: "hallo2")!
+        controllers.append(descriptionViewController2)
+        let backupController = IntroButtonViewController.storyboardInstance(description: "Um alle vorangangenen Nachrichten nach deiner Reise wieder lesen zu können, solltest du vor deiner Reise ein Backup erstellen. Wenn du noch keines erstellt hast, solltest du es jetzt tun.\n\nBeachte, dass wir zum Schutz deiner Geheimnisse während der Reise alle Backup-Codes löschen. Du solltest bestehende Codes jetzt notieren und zuhause lassen.", buttonAction: {_ in viewController.navigationController?.pushViewController(ExportInfoViewController.storyboardInstance(travelCall: true)!, animated: true)})!
+        
+        controllers.append(backupController)
+        
+        let pageViewController = IntroPageViewController.storyboardInstance(orderedViewControllers: controllers)
+        
+        return pageViewController!
+    }
+}