         backgroundColor = UIColor.whiteColor()
         setContentCompressionResistancePriority(UILayoutPriorityRequired, forAxis: .Vertical)
         
-        addSubview(titleLabel)
-        addSubview(detailLabel)
-        
-        setupConstraints()
-    }
-    
-    private func setupConstraints() {
-        constrain(titleLabel, detailLabel) { titleLabel, detailLabel in
-            
-            titleLabel.top == titleLabel.superview!.top + Stylesheet.margin(.Medium)
-            titleLabel.leading == titleLabel.superview!.leading + Stylesheet.margin(.Medium)
-            
-            detailLabel.top == titleLabel.bottom + Stylesheet.margin(.Smallest)
-            detailLabel.bottom == detailLabel.superview!.bottom - Stylesheet.margin(.Big)
-            
-            titleLabel.leading == titleLabel.superview!.leading + Stylesheet.margin(.Medium)
-            titleLabel.trailing == titleLabel.superview!.trailing - Stylesheet.margin(.Medium)
-            
-            detailLabel.leading == detailLabel.superview!.leading + Stylesheet.margin(.Medium)
-            detailLabel.trailing == detailLabel.superview!.trailing - Stylesheet.margin(.Medium)
-        }
+        addSubview(stackView)
+        constrain(stackView) { stackView in
+            stackView.edges == inset(stackView.superview!.edges, Stylesheet.margin(.Medium)) 
+        }
+        
+        stackView.addArrangedSubview(titleLabel)
+        stackView.addArrangedSubview(detailLabel)
     }
 }
 

    
    private static func cellInfoHeightForViewModel(viewModel: PolaroidViewModel, constrainedToWidth width: CGFloat) -> CGFloat {
        let infoView = PolaroidCollectionViewCellHeightCalculator.BasicInfoView
        infoView.setTitle(viewModel.cellTitle)
        let height = infoView.systemLayoutSizeFittingSize(CGSize(width: width, height: 0),
                                                          withHorizontalFittingPriority: UILayoutPriorityRequired,
                                                          verticalFittingPriority: UILayoutPriorityFittingSizeLevel

    let titleLabel: UILabel = {
        let label = UILabel()
        label.numberOfLines = 2
        return label
    }()
    
    let detailLabel: UILabel = {
        let label = UILabel()
        label.numberOfLines = 1
        return label
    }()

    let stackView: UIStackView = {
        let stackView = UIStackView()
        stackView.translatesAutoresizingMaskIntoConstraints = false
        stackView.axis = .Vertical
        stackView.alignment = .Fill
        stackView.spacing = Stylesheet.margin(.Smallest)
        return stackView
    }()

    override init(frame: CGRect) {
