<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>Classes/Controllers/ConversationController.h</filename>
    </added>
    <added>
      <filename>Classes/Controllers/ConversationController.m</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -8,16 +8,19 @@
 
 #import &lt;UIKit/UIKit.h&gt;
 #import &quot;ProfileImageCell.h&quot;
+#import &quot;ChatBubbleView.h&quot;
 
-@class DirectMessage;
+@class Tweet;
 @class ChatBubbleView;
 
 @interface ChatBubbleCell : ProfileImageCell 
 {
-    DirectMessage*      message;
+    Tweet*              message;
     ChatBubbleView*     cellView;
 }
 
-- (void)setMessage:(DirectMessage*)msg isOwn:(BOOL)isOwnMessage;
+- (void)setMessage:(Tweet*)msg isOwn:(BOOL)isOwnMessage;
+
++ (CGFloat)calcCellHeight:(Tweet*)msg interval:(int)diff;
 
 @end</diff>
      <filename>Classes/Controllers/ChatBubbleCell.h</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@
 //
 
 #import &quot;ChatBubbleCell.h&quot;
-#import &quot;DirectMessage.h&quot;
+#import &quot;Tweet.h&quot;
 #import &quot;ChatBubbleView.h&quot;
 #import &quot;TwitterFonAppDelegate.h&quot;
 #import &quot;ColorUtils.h&quot;
@@ -33,7 +33,7 @@
     [cellView setNeedsDisplay];
 }
 
-- (void)setMessage:(DirectMessage*)aMessage isOwn:(BOOL)isOwn
+- (void)setMessage:(Tweet*)aMessage isOwn:(BOOL)isOwn
 {
     message = aMessage;
     self.accessoryType = aMessage.accessoryType;
@@ -44,7 +44,7 @@
     self.selectionStyle = UITableViewCellSelectionStyleBlue;
 
     [cellView setMessage:aMessage type:isOwn];
-    cellView.image = [self getProfileImage:aMessage.senderProfileImageUrl isLarge:false];
+    cellView.image = [self getProfileImage:aMessage.user.profileImageUrl isLarge:false];
 }
 
 - (void)didTouchLinkButton:(id)sender
@@ -64,4 +64,33 @@
     [super dealloc];
 }
 
++ (CGFloat)calcCellHeight:(Tweet*)msg interval:(int)diff
+{
+    // Calculate text bounds and cell height here
+    //
+    CGRect bounds;
+    
+    bounds = CGRectMake(0, 0, CHAT_BUBBLE_TEXT_WIDTH, 200);
+    static UILabel *label = nil;
+    if (label == nil) {
+        label = [[UILabel alloc] initWithFrame:CGRectZero];
+        label.font = [UIFont systemFontOfSize:14];
+    }
+    
+    label.text = msg.text;
+    CGRect textRect = [label textRectForBounds:bounds limitedToNumberOfLines:10];        
+    CGFloat ret = textRect.size.height + 5 + 5 + 5; // bubble height
+
+    if (diff &gt; CHAT_BUBBLE_TIMESTAMP_DIFF) {
+        msg.needTimestamp = true;
+        ret += 26;
+    }
+    else {
+        msg.needTimestamp = false;
+        ret += 5;
+    }
+    
+    return ret;
+}
+
 @end</diff>
      <filename>Classes/Controllers/ChatBubbleCell.m</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,11 @@
 //
 
 #import &lt;UIKit/UIKit.h&gt;
-#import &quot;DirectMessage.h&quot;
+#import &quot;Tweet.h&quot;
+
+#define CHAT_BUBBLE_WIDTH           (320 - 32 - 8 - 20 - 20)
+#define CHAT_BUBBLE_TEXT_WIDTH      (CHAT_BUBBLE_WIDTH - 30)
+#define CHAT_BUBBLE_TIMESTAMP_DIFF  (60 * 30)
 
 typedef enum {
     BUBBLE_TYPE_GRAY,
@@ -17,12 +21,12 @@ typedef enum {
 @interface ChatBubbleView : UIView
 {
     BubbleType      type;
-    DirectMessage*  message;
+    Tweet*          message;
     UIImage*        image;
 }
 
 @property(nonatomic, retain) UIImage* image;
 
-- (void)setMessage:(DirectMessage*)message type:(BubbleType)type;
+- (void)setMessage:(Tweet*)message type:(BubbleType)type;
 
 @end</diff>
      <filename>Classes/Controllers/ChatBubbleView.h</filename>
    </modified>
    <modified>
      <diff>@@ -30,7 +30,7 @@ static UIImage* sGrayBubble = nil;
     return self;
 }
 
-- (void)setMessage:(DirectMessage*)aMessage type:(BubbleType)aType
+- (void)setMessage:(Tweet*)aMessage type:(BubbleType)aType
 {
     message = aMessage;
     type = aType;
@@ -85,12 +85,13 @@ static UIImage* sGrayBubble = nil;
     // Draw chat bubble
     //
     UIImage *bubble;
-    CGRect bubbleRect = message.textRect;
+    int height = self.bounds.size.height - 5;
+    if (message.needTimestamp) height -= 21;
+    CGRect bubbleRect = CGRectMake(0, 0, CHAT_BUBBLE_TEXT_WIDTH, height);
     
     int width = bubbleRect.size.width + 30;
     width = (width / 10) * 10 + ((width % 10) ? 10 : 0);
     bubbleRect.size.width = width;
-    bubbleRect.size.height += 15;
     bubbleRect.origin.y = 4 + top;
     
     if (type == BUBBLE_TYPE_GRAY) {
@@ -108,7 +109,7 @@ static UIImage* sGrayBubble = nil;
     //
     [[UIColor blackColor] set];
     bubbleRect.origin.y += 6;
-    bubbleRect.size.width = message.textRect.size.width;
+    bubbleRect.size.width = CHAT_BUBBLE_TEXT_WIDTH;
     if (type == BUBBLE_TYPE_GRAY) {
         bubbleRect.origin.x += 20;
     }</diff>
      <filename>Classes/Controllers/ChatBubbleView.m</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@
 //
 
 #import &quot;DMTimelineController.h&quot;
-#import &quot;DMConversationController.h&quot;
+#import &quot;ConversationController.h&quot;
 #import &quot;DirectMessage.h&quot;
 #import &quot;DirectMessageCell.h&quot;
 #import &quot;TwitterFonAppDelegate.h&quot;
@@ -161,7 +161,7 @@ static NSInteger sortByDate(id a, id b, void *context)
     }
     else {
         DirectMessage *dm = [timeline objectAtIndex:indexPath.row];
-        DMConversationController *conv = [[[DMConversationController alloc] initWithMessage:dm] autorelease];
+        ConversationController *conv = [[[ConversationController alloc] initWithMessage:dm] autorelease];
         [self.navigationController pushViewController:conv animated:true];
     }
 }
@@ -232,7 +232,7 @@ static NSInteger sortByDate(id a, id b, void *context)
     
     if ([timeline count]) {
         DirectMessage *dm = [timeline objectAtIndex:0];
-        int since_id = dm.messageId;
+        sqlite_int64 since_id = dm.messageId;
     
         [param setObject:[NSString stringWithFormat:@&quot;%lld&quot;, since_id] forKey:@&quot;since_id&quot;];
         [param setObject:@&quot;200&quot; forKey:@&quot;count&quot;];</diff>
      <filename>Classes/Controllers/DMTimelineController.m</filename>
    </modified>
    <modified>
      <diff>@@ -34,7 +34,7 @@
 {
     view.message = value;
     self.contentView.backgroundColor = value.unread ? [UIColor cellColorForTab:TAB_MESSAGES] : [UIColor whiteColor];
-    self.image = [self getProfileImage:value.senderProfileImageUrl isLarge:false];
+    self.image = [self getProfileImage:value.sender.profileImageUrl isLarge:false];
     
     view.frame = CGRectMake(48 + 20, 0, 320 - 48 - 20 - 10, view.message.cellHeight - 1);
     </diff>
      <filename>Classes/Controllers/DirectMessageCell.m</filename>
    </modified>
    <modified>
      <diff>@@ -3,10 +3,6 @@
 #import &quot;User.h&quot;
 #import &quot;Tweet.h&quot;
 
-#define MAX_BUBBLE_WIDTH (320 - 32 - 8 - 20 - 20)
-#define MAX_TEXT_WIDTH   (MAX_BUBBLE_WIDTH - 30)
-#define TIMESTAMP_DIFF   (60 * 30)
-
 #define NUM_MESSAGE_PER_PAGE    40
 
 @interface DirectMessage : Tweet
@@ -16,10 +12,6 @@
     int             recipientId;
     NSString*       senderScreenName;
     NSString*       recipientScreenName;
-    NSString*       senderProfileImageUrl;
-
-    CGRect          textRect;
-    BOOL            needTimestamp;
 }
 
 @property (getter=tweetId, setter=setTweetId:) sqlite_int64     messageId;
@@ -30,13 +22,8 @@
 @property (nonatomic, assign) int           recipientId;
 @property (nonatomic, retain) NSString*     senderScreenName;
 @property (nonatomic, retain) NSString*     recipientScreenName;
-@property (nonatomic, retain) NSString*     senderProfileImageUrl;
-
-@property (nonatomic, assign) CGRect        textRect;
-@property (nonatomic, assign) BOOL          needTimestamp;
 
 + (int)restore:(NSMutableArray*)array all:(BOOL)all;
-+ (int)getConversation:(int)senderId messages:(NSMutableArray*)messages;
 + (DirectMessage*)messageWithJsonDictionary:(NSDictionary*)dic;
 
 + (BOOL)isExists:(sqlite_int64)messageId;;
@@ -45,10 +32,11 @@
 
 - (DirectMessage*)initWithJsonDictionary:(NSDictionary*)dic;
 
-- (void)updateAttribute;
-- (void)loadUserObject;
 - (void)insertDB;
 - (void)deleteFromDB;
 
+- (int)getConversation:(NSMutableArray*)messages;
+
+
 - (id)copyWithZone:(NSZone *)zone;
 @end</diff>
      <filename>Classes/Models/DirectMessage.h</filename>
    </modified>
    <modified>
      <diff>@@ -17,16 +17,11 @@
 @synthesize recipientId;
 @synthesize senderScreenName;
 @synthesize recipientScreenName;
-@synthesize senderProfileImageUrl;
-
-@synthesize textRect;
-@synthesize needTimestamp;
 
 - (void)dealloc
 {
     [senderScreenName release];
     [recipientScreenName release];
-    [senderProfileImageUrl release];
   	[super dealloc];
 }
 
@@ -70,8 +65,6 @@
     senderId = user.userId;
     recipientId = recipient.userId;
     
-    self.senderProfileImageUrl = user.profileImageUrl;
-
     [self updateAttribute];
     unread = true;
 
@@ -90,49 +83,23 @@
 	dist.recipient  = recipient;
     dist.senderScreenName      = senderScreenName;
     dist.recipientScreenName   = recipientScreenName;
-    dist.senderProfileImageUrl = senderProfileImageUrl;
     
     return dist;
 }
 
 - (void)updateAttribute
 {
-    [super updateAttribute];
-    int textWidth = MAX_TEXT_WIDTH;
-    
-    // Calculate text bounds and cell height here
-    //
-    CGRect bounds;
-    
-    bounds = CGRectMake(0, 0, textWidth, 200);
-    
-    static UILabel *label = nil;
-    if (label == nil) {
-        label = [[UILabel alloc] initWithFrame:CGRectZero];
-    }
-    
-    label.font = [UIFont systemFontOfSize:14];
-    label.text = text;
-    textRect = [label textRectForBounds:bounds limitedToNumberOfLines:10];
-    
+    [super updateAttribute];  
     [self calcTextBounds:CELL_WIDTH - INDICATOR_WIDTH];
 }
 
-- (void)loadUserObject
-{
-    self.sender    = [User userWithId:self.senderId];
-    self.recipient = [User userWithId:self.recipientId];
-}
-
 + (DirectMessage*)initWithStatement:(Statement*)stmt
 {
     // sqlite3 statement should be:
     //  SELECT id, text, created_at FROM messsages WHERE sender_id = ?
     //
     DirectMessage *dm       = [[[DirectMessage alloc] init] autorelease];
-    dm.sender               = nil;
-    dm.recipient            = nil;
-    
+   
     dm.messageId            = [stmt getInt64:0];
     dm.senderId             = [stmt getInt32:1];
     dm.recipientId          = [stmt getInt32:2];
@@ -140,7 +107,10 @@
     dm.createdAt            = [stmt getInt32:4];
     dm.senderScreenName     = [stmt getString:5];
     dm.recipientScreenName  = [stmt getString:6];
-    dm.senderProfileImageUrl= [stmt getString:7];
+    
+    dm.sender    = [User userWithId:dm.senderId];
+    dm.recipient = [User userWithId:dm.recipientId];    
+    
     [dm updateAttribute];
 
     return dm;
@@ -148,8 +118,7 @@
 
 + (int)restore:(NSMutableArray*)array all:(BOOL)all
 {
-    const char *sql = &quot;SELECT direct_messages.*, users.profile_image_url FROM direct_messages,users \
-                       WHERE direct_messages.sender_id = users.user_id GROUP BY sender_id ORDER by id DESC LIMIT ?&quot;;
+    const char *sql = &quot;SELECT * FROM direct_messages GROUP BY sender_id ORDER by id DESC LIMIT ?&quot;;
 
     Statement *stmt = [DBConnection statementWithQuery:sql];
     [stmt bindInt32:all ? 200 : 20 forIndex:1];
@@ -167,10 +136,9 @@
     return count;
 }
 
-+ (int)getConversation:(int)senderId messages:(NSMutableArray*)messages
+- (int)getConversation:(NSMutableArray*)messages
 {
-    static char *sql = &quot;SELECT direct_messages.*, users.profile_image_url FROM direct_messages,users \
-                        WHERE direct_messages.sender_id = users.user_id AND (sender_id = ? OR recipient_id = ?) ORDER BY id DESC LIMIT ? OFFSET ?&quot;;
+    static char *sql = &quot;SELECT * FROM direct_messages WHERE sender_id = ? OR recipient_id = ? ORDER BY id DESC LIMIT ? OFFSET ?&quot;;
     Statement *stmt = [DBConnection statementWithQuery:sql];
     
     [stmt bindInt32:senderId                forIndex:1];</diff>
      <filename>Classes/Models/DirectMessage.m</filename>
    </modified>
    <modified>
      <diff>@@ -26,6 +26,7 @@ typedef enum {
     NSString*       stringOfCreatedAt;
     time_t          createdAt;
     NSString*       timestamp;
+    BOOL            needTimestamp;
 
     BOOL            unread;
     BOOL            hasReply;
@@ -44,6 +45,7 @@ typedef enum {
 
 @property (nonatomic, assign) time_t            createdAt;
 @property (nonatomic, retain) NSString*         timestamp;
+@property (nonatomic, assign) BOOL          needTimestamp;
 
 @property (nonatomic, assign) BOOL              unread;
 @property (nonatomic, assign) BOOL              hasReply;
@@ -55,8 +57,12 @@ typedef enum {
 
 @property (nonatomic, assign) UITableViewCellAccessoryType accessoryType;
 
+
+- (int)getConversation:(NSMutableArray*)messages;
+
 - (NSString*)timestamp;
 - (void)updateAttribute;
 - (void)calcTextBounds:(int)textWidth;
 - (id)copyWithZone:(NSZone*)zone;
+
 @end</diff>
      <filename>Classes/Models/Tweet.h</filename>
    </modified>
    <modified>
      <diff>@@ -10,6 +10,7 @@
 
 @synthesize createdAt;
 @synthesize timestamp;
+@synthesize needTimestamp;
 
 @synthesize unread;
 @synthesize hasReply;
@@ -141,6 +142,12 @@ static NSString *hashRegexp = @&quot;(#[a-zA-Z0-9\\-_\\.+:=]+)&quot;;
     }
 }
 
+- (int)getConversation:(NSMutableArray*)messages
+{
+    // implement in deliver class
+    return 0;
+}
+
 - (NSString*)timestamp
 {
     // Calculate distance time string</diff>
      <filename>Classes/Models/Tweet.m</filename>
    </modified>
    <modified>
      <diff>@@ -78,12 +78,12 @@
 		6E89FD620EDEB8BD00778242 /* profileImage.png in Resources */ = {isa = PBXBuildFile; fileRef = 6E89FD600EDEB8BD00778242 /* profileImage.png */; };
 		6E89FD630EDEB8BD00778242 /* profileImageSmall.png in Resources */ = {isa = PBXBuildFile; fileRef = 6E89FD610EDEB8BD00778242 /* profileImageSmall.png */; };
 		6E8C57BA0ED0AEA300EC9D39 /* UserView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E8C57B90ED0AEA300EC9D39 /* UserView.m */; };
+		6E8E0EED0F11580600C51F73 /* ConversationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E8E0EEC0F11580600C51F73 /* ConversationController.m */; };
 		6E943A900E64C4FF00E8ECF2 /* TimeUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E943A8F0E64C4FF00E8ECF2 /* TimeUtils.m */; };
 		6E943F1B0E6527C600E8ECF2 /* usercell_background.png in Resources */ = {isa = PBXBuildFile; fileRef = 6E943F1A0E6527C600E8ECF2 /* usercell_background.png */; };
 		6E97A5E60EF8A91100168291 /* DirectMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E97A5E50EF8A91100168291 /* DirectMessage.m */; };
 		6E97A75E0EF8C78000168291 /* DMTimelineController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E97A75C0EF8C78000168291 /* DMTimelineController.m */; };
 		6E97A8820EF8F7DA00168291 /* DirectMessage.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E97A8810EF8F7DA00168291 /* DirectMessage.xib */; };
-		6E97AA8F0EF9142900168291 /* DMConversationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E97AA8E0EF9142900168291 /* DMConversationController.m */; };
 		6E97ABBB0EF91EC100168291 /* ChatBubbleCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E97ABBA0EF91EC100168291 /* ChatBubbleCell.m */; };
 		6E97ABBE0EF91F6C00168291 /* Balloon_2.png in Resources */ = {isa = PBXBuildFile; fileRef = 6E97ABBC0EF91F6C00168291 /* Balloon_2.png */; };
 		6E97ABBF0EF91F6C00168291 /* Balloon_1.png in Resources */ = {isa = PBXBuildFile; fileRef = 6E97ABBD0EF91F6C00168291 /* Balloon_1.png */; };
@@ -246,6 +246,8 @@
 		6E89FD610EDEB8BD00778242 /* profileImageSmall.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = profileImageSmall.png; sourceTree = &quot;&lt;group&gt;&quot;; };
 		6E8C57B80ED0AEA300EC9D39 /* UserView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UserView.h; path = Controllers/UserView.h; sourceTree = &quot;&lt;group&gt;&quot;; };
 		6E8C57B90ED0AEA300EC9D39 /* UserView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UserView.m; path = Controllers/UserView.m; sourceTree = &quot;&lt;group&gt;&quot;; };
+		6E8E0EEB0F11580600C51F73 /* ConversationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ConversationController.h; path = Controllers/ConversationController.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		6E8E0EEC0F11580600C51F73 /* ConversationController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ConversationController.m; path = Controllers/ConversationController.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		6E943A8E0E64C4FF00E8ECF2 /* TimeUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TimeUtils.h; path = Classes/OtherSources/TimeUtils.h; sourceTree = &quot;&lt;group&gt;&quot;; };
 		6E943A8F0E64C4FF00E8ECF2 /* TimeUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TimeUtils.m; path = Classes/OtherSources/TimeUtils.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		6E943F1A0E6527C600E8ECF2 /* usercell_background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = usercell_background.png; sourceTree = &quot;&lt;group&gt;&quot;; };
@@ -254,8 +256,6 @@
 		6E97A75B0EF8C78000168291 /* DMTimelineController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DMTimelineController.h; path = Controllers/DMTimelineController.h; sourceTree = &quot;&lt;group&gt;&quot;; };
 		6E97A75C0EF8C78000168291 /* DMTimelineController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DMTimelineController.m; path = Controllers/DMTimelineController.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		6E97A8810EF8F7DA00168291 /* DirectMessage.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = DirectMessage.xib; path = Interfaces/DirectMessage.xib; sourceTree = &quot;&lt;group&gt;&quot;; };
-		6E97AA8D0EF9142900168291 /* DMConversationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DMConversationController.h; path = Controllers/DMConversationController.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-		6E97AA8E0EF9142900168291 /* DMConversationController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DMConversationController.m; path = Controllers/DMConversationController.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		6E97ABB90EF91EC100168291 /* ChatBubbleCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ChatBubbleCell.h; path = Controllers/ChatBubbleCell.h; sourceTree = &quot;&lt;group&gt;&quot;; };
 		6E97ABBA0EF91EC100168291 /* ChatBubbleCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ChatBubbleCell.m; path = Controllers/ChatBubbleCell.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		6E97ABBC0EF91F6C00168291 /* Balloon_2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Balloon_2.png; sourceTree = &quot;&lt;group&gt;&quot;; };
@@ -668,8 +668,8 @@
 		6E97AE610EF951FC00168291 /* Conversation */ = {
 			isa = PBXGroup;
 			children = (
-				6E97AA8D0EF9142900168291 /* DMConversationController.h */,
-				6E97AA8E0EF9142900168291 /* DMConversationController.m */,
+				6E8E0EEB0F11580600C51F73 /* ConversationController.h */,
+				6E8E0EEC0F11580600C51F73 /* ConversationController.m */,
 				6E97ABB90EF91EC100168291 /* ChatBubbleCell.h */,
 				6E97ABBA0EF91EC100168291 /* ChatBubbleCell.m */,
 				6E97ABE20EF920FE00168291 /* ChatBubbleView.h */,
@@ -1062,7 +1062,6 @@
 				6E3B13B80EF8383300070525 /* Status.m in Sources */,
 				6E97A5E60EF8A91100168291 /* DirectMessage.m in Sources */,
 				6E97A75E0EF8C78000168291 /* DMTimelineController.m in Sources */,
-				6E97AA8F0EF9142900168291 /* DMConversationController.m in Sources */,
 				6E97ABBB0EF91EC100168291 /* ChatBubbleCell.m in Sources */,
 				6E97ABE40EF920FE00168291 /* ChatBubbleView.m in Sources */,
 				6E97AD680EF94B5000168291 /* DirectMessageCellView.m in Sources */,
@@ -1077,6 +1076,7 @@
 				6EC261130F0F4A7B00C31A13 /* DMDetailCellView.m in Sources */,
 				6EC263830F0F98E600C31A13 /* FavoritesViewController.m in Sources */,
 				6EC266F80F1020D700C31A13 /* FolloweeCellView.m in Sources */,
+				6E8E0EED0F11580600C51F73 /* ConversationController.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};</diff>
      <filename>TwitterFon.xcodeproj/project.pbxproj</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>Classes/Controllers/DMConversationController.h</filename>
    </removed>
    <removed>
      <filename>Classes/Controllers/DMConversationController.m</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>38143caeafc71675b29e9b1ff948c36c35f4b381</id>
    </parent>
  </parents>
  <author>
    <name>kaz</name>
    <email>kaz@542e9493-1a22-0410-9183-c10453d2b9ee</email>
  </author>
  <url>http://github.com/jpick/twitterfon/commit/5562b9ea8581143e019024d077eb6fbfeaf9b3b5</url>
  <id>5562b9ea8581143e019024d077eb6fbfeaf9b3b5</id>
  <committed-date>2009-01-07T22:43:32-08:00</committed-date>
  <authored-date>2009-01-07T22:43:32-08:00</authored-date>
  <message>Re-factoring DM conversation view

git-svn-id: http://naan.net/svn/trunk/TwitterFon@1654 542e9493-1a22-0410-9183-c10453d2b9ee</message>
  <tree>cca6abedf2b5a019bf63255247956fdbb5d75af6</tree>
  <committer>
    <name>kaz</name>
    <email>kaz@542e9493-1a22-0410-9183-c10453d2b9ee</email>
  </committer>
</commit>
