     self.segmentedControlContainer.frame = self.computeSegmentedControlContainerFrame()
     
     self.tweetTableView.frame = self.computeTableViewFrame(tableView: tweetTableView)
-    
-    self.mainScrollView.contentSize = CGSize(
-      width: view.bounds.width,
-      height: stickyheaderContainerViewHeight + profileHeaderViewHeight + segmentedControlContainer.bounds.height + tweetTableView.bounds.height)
+    self.photosTableView.frame = self.computeTableViewFrame(tableView: photosTableView)
+    self.favoritesTableView.frame = self.computeTableViewFrame(tableView: favoritesTableView)
+    
+    self.updateMainScrollViewFrame()
     
     self.mainScrollView.scrollIndicatorInsets = computeMainScrollViewIndicatorInsets()
   }

// MARK: UITableViewDelegates & DataSources
extension TwitterProfileViewController: UITableViewDelegate, UITableViewDataSource {
  func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 50
  }
  
  func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
    cell.textLabel?.text = "Row \(indexPath.row)"
    return cell
  }
}


  
  // Properties
  
  enum TableViewContentType: Int {
    case tweets = 0, photos = 1, favorites = 2
  }
  
  var contentType: TableViewContentType = .tweets {
    didSet { self.updateTableViewContent() }
  }
  
  var currentTableView: UITableView {
    switch contentType {
    case .tweets:
      return self.tweetTableView
    case .photos:
      return self.photosTableView
    case .favorites:
      return self.favoritesTableView
    default:
      return self.tweetTableView
    }
  }
  
  
  var mainScrollView: UIScrollView!
  
  var headerCoverView: UIImageView!
