     return FollowCenter(ofView, dx: 0, dy: 0, withView: withView, dx: 0, dy: 0)
 }
 
+
+public enum BaselineType {
+    case First
+    case Last
+}
+
+public func BaselineAnchor<T: UIView where T: Baselinable>(view: T?, type: BaselineType, inset: CGFloat) -> VAnchor {
+    return VAnchorType.Baseline(view, view, type, inset)
+}
+
+public func BaselineAnchor<T: UIView where T: Baselinable>(view: T?, type: BaselineType) -> VAnchor {
+    return VAnchorType.Baseline(view, view, type, 0)
+}
+
+public func BaselineAnchor<T: UIView where T: Baselinable>(view: T?) -> VAnchor {
+    return VAnchorType.Baseline(view, view, .First, 0)
+}
+
+public protocol Baselinable {
+    func baselineValueOfType(type: BaselineType, size: CGSize) -> CGFloat
+}
+
+extension UILabel: Baselinable {
+    public func baselineValueOfType(type: BaselineType, size: CGSize) -> CGFloat {
+        let sz = sizeThatFits(size)
+        
+        switch type {
+        case .First:
+            return (size.height - sz.height)/2 + font.ascender
+        case .Last:
+            return size.height - (size.height - sz.height)/2 + font.descender
+        }
+    }
+}

}

public func RightAnchor(view: UIView?, inset: CGFloat) -> HAnchor {
    return HAnchor.Right(view, inset)
}

public func RightAnchor(view: UIView?) -> HAnchor {



public func VCenterAnchor(view: UIView?, inset: CGFloat) -> VAnchor {
    return VAnchorType.Center(view, inset)
}

public func VCenterAnchor(view: UIView?) -> VAnchor {
