       switch link.type {
       case .Video:
         return LinkListVideoViewModel(user: user, accessToken: accessToken, link: link)
-      case .Image, .Album:
+      case .Image, .GIF, .Album:
         return LinkListImageViewModel(user: user, accessToken: accessToken, link: link)
       case .SelfPost:
         return LinkListSelfPostViewModel(user: user, accessToken: accessToken, link: link)


  var viewModels: Observable<[LinkListItemViewModel]> {
    return _viewModels.asObservable()
  }

  var listingType: Observable<ListingType> {

  private let _viewModels: Variable<[LinkListItemViewModel]> = Variable([])
  private let _listingType: Variable<ListingType> = Variable(.Hot)
  private let disposeBag = DisposeBag()
  private let _loadingState = Variable<LoadingState>(.Normal)

  // MARK: Initializer
  init(user: User?, accessToken: AccessToken?, title: String, path: String) {
