diff --git a/Logo.png b/Logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..c8da5de4b0816c30d3f83372218c9bc031508c35
Binary files /dev/null and b/Logo.png differ
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
index cde69bcccec65160d92116f20ffce4fce0b5245c..dedb762194f20839e5629a3ebbc0e89aa537178d 100644
Binary files a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-ldpi/ic_launcher.png b/android/app/src/main/res/mipmap-ldpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..30bac2eb97a3b17f36d7a7e90b42eb2511f46715
Binary files /dev/null and b/android/app/src/main/res/mipmap-ldpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
index c133a0cbd379f5af6dbf1a899a0293ca5eccfad0..55b6e50757f00cf7304a65f42fa79d3b13dd89b9 100644
Binary files a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
index bfa42f0e7b91d006d22352c9ff2f134e504e3c1d..46157230a5a0fb954d9a6e86e8f824bede1c6db7 100644
Binary files a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
index 324e72cdd7480cb983fa1bcc7ce686e51ef87fe7..364e32a5be60d55c286f41ea581c895b52779780 100644
Binary files a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..e0026d7793a0a25f1005bc442b94cfc1a0d688b2
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/app/meteor.js b/app/meteor.js
index 3bf56c788f0019412d01458b7e3c0744324536cb..46b0c4056d1452b85f3c5d517d86646a52e37514 100644
--- a/app/meteor.js
+++ b/app/meteor.js
@@ -35,11 +35,8 @@ export function connect(cb) {
 }
 
 export function loginWithPassword(selector, password, cb) {
-	console.log(0);
 	Meteor.loginWithPassword(selector, password, function() {
-		console.log(1);
 		Meteor.call('subscriptions/get', function(err, data) {
-			console.log(2, err);
 			if (err) {
 				console.error(err);
 			}
@@ -59,3 +56,18 @@ export function loginWithPassword(selector, password, cb) {
 		cb();
 	});
 }
+
+export function loadMessagesForRoom(rid) {
+	Meteor.call('loadHistory', rid, null, 50, function(err, data) {
+		if (err) {
+			console.error(err);
+		}
+		console.log(data);
+
+		realm.write(() => {
+			data.messages.forEach(message => {
+				realm.create('messages', message, true);
+			});
+		});
+	});
+}
diff --git a/app/navigation.js b/app/navigation.js
index e1c2b51c3be68f8a096584a6fe19f72277b71964..73eb71ea28b84bdaef8af0367cd8d009a9bd098d 100644
--- a/app/navigation.js
+++ b/app/navigation.js
@@ -2,9 +2,11 @@ import { StackNavigator } from 'react-navigation';
 import { LoginView } from './login';
 import { NewServerView } from './new-server';
 import { RoomsView } from './rooms';
+import { RoomView } from './room';
 
 
 export default new StackNavigator({
+	// Room: { screen: RoomView },
 	Home: {
 		navigationOptions: {
 			header: null
@@ -12,7 +14,8 @@ export default new StackNavigator({
 		screen: NewServerView
 	},
 	Login: { screen: LoginView },
-	Rooms: { screen: RoomsView }
+	Rooms: { screen: RoomsView },
+	Room: { screen: RoomView }
 }, {
 	cardStyle: {
 		backgroundColor: '#fff'
diff --git a/app/realm.js b/app/realm.js
index 677a04e20c1db5b8e4c2b9fcad46a4547bf64c79..de927cf9ee58b80f427e9c1746a498d1182c2fa7 100644
--- a/app/realm.js
+++ b/app/realm.js
@@ -40,10 +40,35 @@ const subscriptionSchema = {
 	}
 };
 
+const usersSchema = {
+	name: 'users',
+	primaryKey: '_id',
+	properties: {
+		_id: 'string',
+		username: 'string',
+		name: {type: 'string', optional: true}
+	}
+}
+
+const messagesSchema = {
+	name: 'messages',
+	primaryKey: '_id',
+	properties: {
+		_id: 'string',
+		msg: {type: 'string', optional: true},
+		rid: 'string',
+		ts: 'date',
+		u: 'users',
+		// mentions: [],
+		// channels: [],
+		_updatedAt: 'date'
+	}
+};
+
 // Realm.clearTestState();
 
 const realm = new Realm({
-	schema: [settingsSchema, serversSchema, subscriptionSchema]
+	schema: [settingsSchema, serversSchema, subscriptionSchema, messagesSchema, usersSchema]
 });
 
 export default realm;
diff --git a/app/room.js b/app/room.js
new file mode 100644
index 0000000000000000000000000000000000000000..b99bfabddedf54d7f555b5760d5d29e5b24ce5bb
--- /dev/null
+++ b/app/room.js
@@ -0,0 +1,117 @@
+import React from 'react';
+import { View, Text, FlatList, StyleSheet, Image } from 'react-native';
+import realm from './realm';
+import { loadMessagesForRoom } from './meteor';
+import Markdown from 'react-native-simple-markdown';
+
+
+const styles = StyleSheet.create({
+	roomItem: {
+		borderColor: '#aaa',
+		padding: 14,
+		flexDirection: 'row'
+	},
+	avatar: {
+		backgroundColor: '#ccc',
+		width: 40,
+		height: 40,
+		marginRight: 10,
+		borderRadius: 5
+	},
+	username: {
+		fontWeight: 'bold',
+		marginBottom: 5
+	},
+	container: {
+		flex: 1
+	},
+	separator: {
+		height: 1,
+		// width: "86%",
+		backgroundColor: '#CED0CE'
+		// marginLeft: "14%"
+	}
+});
+
+class RoomItem extends React.PureComponent {
+	_onPress = () => {
+		this.props.onPressItem(this.props.id);
+	};
+
+	render() {
+		return (
+			<View style={styles.roomItem}>
+				<Image style={styles.avatar} source={{uri: `http://localhost:3000/avatar/${ this.props.item.u.username }`}}>
+				</Image>
+				<View>
+					<Text onPress={this._onPress} style={styles.username}>
+						{this.props.item.u.username}
+					</Text>
+					<Markdown whitelist={['link', 'url']}>
+						{this.props.item.msg}
+					</Markdown>
+				</View>
+			</View>
+		);
+	}
+}
+
+export class RoomView extends React.Component {
+	static navigationOptions = ({ navigation }) => ({
+		title: realm.objectForPrimaryKey('subscriptions', navigation.state.params.sid).name
+		// title: navigation.state.params.rid
+	});
+
+	_onPressItem(id) {
+		console.log('pressed', id);
+	}
+
+	renderItem = ({item}) => (
+		<RoomItem
+			id={item._id}
+			onPressItem={this._onPressItem}
+			selected={true}
+			item={item}
+		/>
+	);
+
+	constructor(props) {
+		super(props);
+		this.rid = realm.objectForPrimaryKey('subscriptions', props.navigation.state.params.sid).rid;
+		// this.rid = 'GENERAL';
+
+		loadMessagesForRoom(this.rid);
+
+		const getState = () => {
+			return {
+				selected: new Map(),
+				dataSource: realm.objects('messages').filtered('rid = $0', this.rid)
+			};
+		};
+
+		realm.addListener('change', () => this.setState(getState()));
+
+		this.state = getState();
+	}
+
+	renderSeparator = () => {
+		return (
+			<View style={styles.separator} />
+		);
+	};
+
+
+	render() {
+		return (
+			<View style={styles.container}>
+				<FlatList
+					style={styles.list}
+					data={this.state.dataSource}
+					renderItem={this.renderItem}
+					keyExtractor={item => item._id}
+					ItemSeparatorComponent={this.renderSeparator}
+				/>
+			</View>
+		);
+	}
+}
diff --git a/app/rooms.js b/app/rooms.js
index a91cc7e7b73a964c88887f5e769c32645f830099..dd81b337ce8a5575eaaa4d7ad1222166ec1ed2c0 100644
--- a/app/rooms.js
+++ b/app/rooms.js
@@ -34,8 +34,10 @@ class RoomItem extends React.PureComponent {
 }
 
 export class RoomsView extends React.Component {
-	_onPressItem(id) {
+	_onPressItem = (id) => {
+		const { navigate } = this.props.navigation;
 		console.log('pressed', id);
+		navigate('Room', {sid: id});
 	}
 
 	renderItem = ({item}) => (
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/Contents.json b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/Contents.json
index 118c98f7461bf98b2bc7e061150d8021121ad277..fd6012a4ba867f2daf4f639b0d117ea87f709bb8 100644
--- a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/Contents.json
+++ b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/Contents.json
@@ -1,38 +1,152 @@
 {
   "images" : [
     {
+      "size" : "20x20",
       "idiom" : "iphone",
-      "size" : "29x29",
+      "filename" : "icon-20@2x.png",
       "scale" : "2x"
     },
     {
+      "size" : "20x20",
       "idiom" : "iphone",
-      "size" : "29x29",
+      "filename" : "icon-20@3x.png",
       "scale" : "3x"
     },
     {
+      "size" : "29x29",
       "idiom" : "iphone",
-      "size" : "40x40",
+      "filename" : "icon-29@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "icon-29@2x.png",
       "scale" : "2x"
     },
     {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "icon-29@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "40x40",
       "idiom" : "iphone",
+      "filename" : "icon-40@2x.png",
+      "scale" : "2x"
+    },
+    {
       "size" : "40x40",
+      "idiom" : "iphone",
+      "filename" : "icon-40@3x.png",
       "scale" : "3x"
     },
     {
+      "size" : "57x57",
       "idiom" : "iphone",
-      "size" : "60x60",
+      "filename" : "icon-57@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "57x57",
+      "idiom" : "iphone",
+      "filename" : "icon-57@2x.png",
       "scale" : "2x"
     },
     {
+      "size" : "60x60",
       "idiom" : "iphone",
+      "filename" : "icon-60@2x.png",
+      "scale" : "2x"
+    },
+    {
       "size" : "60x60",
+      "idiom" : "iphone",
+      "filename" : "icon-60@3x.png",
       "scale" : "3x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "ipad",
+      "filename" : "icon-20@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "ipad",
+      "filename" : "icon-20@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "ipad",
+      "filename" : "icon-29@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "ipad",
+      "filename" : "icon-29@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "ipad",
+      "filename" : "icon-40@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "ipad",
+      "filename" : "icon-40@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "50x50",
+      "idiom" : "ipad",
+      "filename" : "icon-50@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "50x50",
+      "idiom" : "ipad",
+      "filename" : "icon-50@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "72x72",
+      "idiom" : "ipad",
+      "filename" : "icon-72@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "72x72",
+      "idiom" : "ipad",
+      "filename" : "icon-72@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "76x76",
+      "idiom" : "ipad",
+      "filename" : "icon-76@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "76x76",
+      "idiom" : "ipad",
+      "filename" : "icon-76@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "83.5x83.5",
+      "idiom" : "ipad",
+      "filename" : "icon-83.5@2x.png",
+      "scale" : "2x"
     }
   ],
   "info" : {
     "version" : 1,
     "author" : "xcode"
   }
-}
\ No newline at end of file
+}
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-20@1x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-20@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a44cf50c60cfb9f804c021f20bd0870b6ead828a
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-20@1x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-20@2x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-20@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..93ca1b0f052a0cc4f224f39397a3ea04e24c9d58
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-20@2x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-20@3x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-20@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..e0f452f996de8fa9483dbb933753e9a6bb4a89bc
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-20@3x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-29@1x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-29@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..24149f8b709f87898bb761d2bbc6f0e0908f5e15
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-29@1x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-29@2x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-29@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..810ad80cec4c55a48ed11045d0050f422c155288
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-29@2x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-29@3x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-29@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..7193c5f9c3bdcc4742a678b1418f6edc2fd3b7e2
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-29@3x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-40@1x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-40@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..93ca1b0f052a0cc4f224f39397a3ea04e24c9d58
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-40@1x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-40@2x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-40@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6c4a93d3a87534ae97652cfd2ad095065b37f71
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-40@2x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-40@3x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-40@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..811f66c869dab115214abd4beadbd1ef480c3592
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-40@3x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-50@1x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-50@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..e1729093fcf80ffa858665fdbccbb569dcbbaf8b
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-50@1x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-50@2x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-50@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..ed85af3e921b15b232a84438be967b966709e818
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-50@2x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-57@1x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-57@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..c5be0be039771ff0926cc98c53beb8f8d6a2f652
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-57@1x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-57@2x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-57@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..c48a57cc27ba766f9e6630d814889ef0fae76b5a
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-57@2x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-60@2x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-60@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..811f66c869dab115214abd4beadbd1ef480c3592
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-60@2x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-60@3x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-60@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..95bb16a91ede31d458d79a1c38e294e0549ac24e
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-60@3x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-72@1x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-72@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..dedb762194f20839e5629a3ebbc0e89aa537178d
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-72@1x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-72@2x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-72@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..364e32a5be60d55c286f41ea581c895b52779780
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-72@2x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-76@1x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-76@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..b0ad52b103f1bb966e10974cc02e728c7b19acfc
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-76@1x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-76@2x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-76@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..b6d72ef6ce9e3312b16c081642ed1ff110dd859b
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-76@2x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-83.5@2x.png b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-83.5@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..800e4534cbc9ba15ce8af01b9b0f9f156a240393
Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/icon-83.5@2x.png differ