   // MARK: - Layout
 
   override public func calculateSizeThatFits(constrainedSize: CGSize) -> CGSize {
-    var height: CGFloat = 0.0
+    var height: CGFloat = 0
+    var padding: CGFloat = 0
+    var dividerHeight: CGFloat = 0
+
+    if let config = config {
+      padding = config.wall.padding
+      dividerHeight = config.wall.post.divider.height
+    }
 
     if let headerNode = headerNode {
       height += headerNode.height
     }
 
     if let attachmentGridNode = attachmentGridNode {
-      height += attachmentGridNode.height + 2 * Config.Wall.padding
+      height += attachmentGridNode.height + 2 * padding
     }
 
     if let textNode = textNode {
       let textSize = textNode.measure(CGSize(
         width: contentWidth,
         height: CGFloat(FLT_MAX)))
-      height += textSize.height + Config.Wall.padding
+      height += textSize.height + padding
     }
 
     if let footerNode = footerNode {
       height += footerNode.height
     } else {
-      height += Config.Wall.padding
+      height += padding
     }
 
     if let actionBarNode = actionBarNode {
-      height += PostConfig.ActionBar.height
-    }
-
-    if PostConfig.Divider.enabled {
-      height += PostConfig.Divider.height
+      height += actionBarNode.height
+    }
+
+    if let divider = divider {
+      height += dividerHeight
     }
 
     return CGSizeMake(width, height)
   }
 
   override public func layout() {
-    let padding = Config.Wall.padding
+    var padding: CGFloat = 0
+    var dividerHeight: CGFloat = 0
+
+    if let config = config {
+      padding = config.wall.padding
+      dividerHeight = config.wall.post.divider.height
+    }
+
     var y = padding
 
     if let headerNode = headerNode {

  let width: CGFloat
  var delegate: PostCellNodeDelegate?
  var post: Post

  var headerNode: PostHeaderNode?
  var attachmentGridNode: AttachmentGridNode?

        x: padding,
        y: y,
        width: contentWidth,
        height: dividerHeight)
    }
  }
}
