             return textField.apply(changeSet: textFieldChangeSet, layoutEngine: layoutEngine)
             
         case .custom(let customComponentChangeSet):
-            let containerView = view ?? UIView()
-            containerView.managedByPortal = true
-            layoutEngine.apply(changeSet: customComponentChangeSet.layout, to: containerView)
-            containerView.apply(changeSet: customComponentChangeSet.baseStyleSheet)
-            let mailbox: Mailbox<ActionType> = containerView.getMailbox()
-            return Render(view: containerView, mailbox: mailbox) {
-                let renderer = self.rendererFactory()
-                renderer.apply(changeSet: customComponentChangeSet, inside: containerView, dispatcher: mailbox.dispatch)
-            }
+            return apply(changeSet: customComponentChangeSet, to: view ?? UIView())
             
         case .spinner(let spinnerChangeSet):
             let spinner = castOrRelease(view: view, to: UIActivityIndicatorView.self)

        }
    }
    // swiftlint:enable cyclomatic_complexity function_body_length
    
    fileprivate func apply(changeSet: ContainerChangeSet<ActionType>, to view: UIView) -> Render<ActionType> {
        var afterLayoutTasks = [AfterLayoutTask]()

            return carousel.apply(changeSet: carouselChangeSet, layoutEngine: layoutEngine)
            
        case .touchable(let touchableChangeSet):
            return apply(changeSet: touchableChangeSet, to: view)
            
        case .segmented(let segmentedChangeSet):
            let segmented = castOrRelease(view: view, to: UISegmentedControl.self)
