                     position: CGPoint) -> MountContext {
     mountedArguments = (parentView: parentView, layout: WeakContainer(layout), position: position)
     
+    let componentContext = context()
+    
     let mountContext = StandardMountLayout(parentView: parentView,
                                            layout: layout,
                                            position: position,
                                            config: self.view(),
-                                           componentContext: self.context())
+                                           componentContext: componentContext)
     
     let scrollView = mountContext.view as! UIScrollView
     scrollDelegate = InternalScrollDelegate(layout: layout)

    scrollView.contentSize = layout.extra as! CGSize
    
    // Now we mount our children
    let componentContext = context()
    // todo: this is terrible, need to fix it
    componentContext.untypedMountInfo.mountContext = mountContext
    mountChildren()
    
    return MountContext(view: mountContext.view,
                        position: mountContext.position,

                  incrementalContext: incrementalMountContext)
  }
  
  private func mountChildren(_ componentContext: ComponentContextProtocol) {
    guard let mountedArguments = mountedArguments else {
      assertionFailure()
      return
