     func expandHeader() {
         self.view.layoutIfNeeded()
         self.scrollView.layoutIfNeeded()
-        if let bodyView = self.bodyView {
-            self.view.layoutIfNeeded()
-            PXLayout.setHeight(owner: bodyView, height: bodyView.frame.height).isActive = true
+        if let bodyContentView = self.bodyContentView {
+            self.view.layoutIfNeeded()
+            PXLayout.setHeight(owner: bodyContentView, height: bodyContentView.frame.height).isActive = true
         }
         let fixedHeight = totalContentViewHeigth() - self.contentView.frame.height
         guard let headerView = self.headerView else {

            PXLayout.setHeight(owner: headerView, height: headerView.frame.height).isActive = true
        }
        let fixedHeight = totalContentViewHeigth() - self.contentView.frame.height
        guard let bodyView = self.bodyView else {
            return
        }
        PXLayout.setHeight(owner: bodyView, height: bodyView.frame.height + fixedHeight).isActive = true
        super.refreshContentViewSize()
    }



    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 {
