         self.byText = styledCellTextWithIcon(.User, text: post.author)
         self.postCount = post.count
         self.postRead = post.read
-        self.setNeedsUpdateConstraints()
+        self.setNeedsLayout()
+        self.layoutIfNeeded()
     }
     
-    func styledCellTextWithIcon(icon : Icon, text : String?) -> NSAttributedString? {
+    private func styledCellTextWithIcon(icon : Icon, text : String?) -> NSAttributedString? {
         let style = cellTextStyle.withSize(.XSmall).withColor(OEXStyles.sharedStyles().neutralBase())
         return text.map {text in
             return NSAttributedString.joinInNaturalLayout(

        contentView.addSubview(byLabel)
        contentView.addSubview(countButton)
        
        typeButton.snp_makeConstraints { (make) -> Void in
            make.leading.equalTo(self.contentView).offset(15)
            make.centerY.equalTo(self.contentView)
            make.size.equalTo(typeButton.intrinsicContentSize())
        }
        
        titleLabel.snp_makeConstraints { (make) -> Void in
            make.leading.equalTo(typeButton.snp_trailing).offset(15)
            make.centerY.equalTo(self.contentView).offset(-5)
            make.height.equalTo(20)
            make.trailing.equalTo(countButton.snp_leading).offset(-8)
        }
        
        byLabel.snp_makeConstraints { (make) -> Void in
            make.leading.equalTo(titleLabel)
            make.top.equalTo(titleLabel.snp_bottom)
            make.trailing.equalTo(titleLabel)
        }
        
        countButton.snp_makeConstraints { (make) -> Void in
            make.trailing.equalTo(self.contentView).offset(-10)
            make.centerY.equalTo(self.contentView).offset(0)
            make.size.equalTo(self.countButton.intrinsicContentSize())
        }
        
    
    }
    
    override func updateConstraints() {
        super.updateConstraints()
        
        typeButton.snp_updateConstraints { (make) -> Void in
            make.size.equalTo(typeButton.intrinsicContentSize())
        }
        
        countButton.snp_updateConstraints { (make) -> Void in
            make.size.equalTo(countButton.intrinsicContentSize())
        }
        
    }
    
    private var titleTextStyle : OEXTextStyle {

        }
    }
    
    override func updateConstraints() {
        countButton.snp_makeConstraints { (make) -> Void in
            make.leading.greaterThanOrEqualTo(titleLabel.snp_trailing).offset(8)
            make.leading.greaterThanOrEqualTo(byLabel.snp_trailing).offset(8)
            make.trailing.equalTo(self.contentView).offset(-10)
            make.centerY.equalTo(self.contentView).offset(0)
            // Add a little padding to the ideal size since UIKit doesn't seem to calculate an intrinsic size
            // correctly (possible related to text attachments)
            make.width.equalTo(((self.countButton.attributedTitleForState(.Normal)?.size())?.width ?? 0) + 2)
        }

        
        super.updateConstraints()
    }
    
    private func iconForType(type : PostThreadType) -> Icon {
        switch type {
        case .Discussion:
            return Icon.Comments
