     case Triggered, Loading, Stopped
   }
 
+  public var config = Config()
+  public var tapDelegate: WallTapDelegate?
+  public var scrollDelegate: WallScrollDelegate?
+
+  var post: Post?
   private var scrollingState: InfiniteScrolling = .Stopped
 
-  public var post: Postable?
-  public var config = Config()
-
-  public var tapDelegate: WallTapDelegate?
-  public var scrollDelegate: WallScrollDelegate?
+  public var posts: [PostConvertible] = [] {
+    willSet {
+      dispatch_async(dispatch_get_main_queue(), { _ in
+        self.collectionView.reloadData()
+      })
+    }
+  }
 
   public lazy var collectionView: ASCollectionView = { [unowned self] in
     var frame = self.view.bounds

    let collectionView = ASCollectionView(frame: CGRectZero,
      collectionViewLayout: self.flowLayout, asyncDataFetching: true)
    collectionView.alwaysBounceVertical = true
    collectionView.autoresizingMask = UIViewAutoresizing.FlexibleHeight | UIViewAutoresizing.FlexibleWidth
    collectionView.backgroundColor = .whiteColor()
    collectionView.bounces = true
    collectionView.asyncDataSource = self

    return layout
    }()

  // MARK: - Initialization

  public convenience init(postConvertible: PostConvertible) {
    self.init()

    self.post = postConvertible.wallModel
  }

  // MARK: - View Lifecycle
