     override open var screenId: String { return TrackingUtil.SCREEN_ID_PAYMENT_RESULT }
 
     let viewModel: PXResultViewModelInterface
-    var headerView: UIView?
+    var headerView: PXHeaderView?
     var receiptView: UIView?
+    var bodyContentView: UIView?
     var topCustomView: UIView?
     var bottomCustomView: UIView?
     var bodyView: UIView?

        return nil
    }

    func buildBodyView() -> UIView? {
        let bodyComponent = viewModel.buildBodyComponent()
        return bodyComponent?.render()


    func shouldExpandHeader() -> Bool {
        self.view.layoutIfNeeded()
        guard let bodyContentView = self.bodyContentView else {
            return true
        }
        return bodyContentView.frame.height == 0
    }
}

// Components
extension PXResultViewController {
    func buildHeaderView() -> PXHeaderView? {
        let headerComponent = viewModel.buildHeaderComponent()
        if let headerView = headerComponent.render() as? PXHeaderView {
            return headerView
        }
        return nil
    }

    func buildFooterView() -> UIView {
