     }
     
     public init(topAnchor: VViewAnchor, bottomAnchor: VViewAnchor) {
-        self.topAnchor = topAnchor
-        self.leftAnchor = .Parent
-        self.bottomAnchor = bottomAnchor
-        self.rightAnchor = .Parent
+        self.init(topAnchor: topAnchor, leftAnchor: .Parent, bottomAnchor: bottomAnchor, rightAnchor: .Parent)
     }
     
     public init(leftAnchor: HViewAnchor, rightAnchor: HViewAnchor) {
-        self.topAnchor = .Parent
-        self.leftAnchor = leftAnchor
-        self.bottomAnchor = .Parent
-        self.rightAnchor = rightAnchor
+        self.init(topAnchor: .Parent, leftAnchor: leftAnchor, bottomAnchor: .Parent, rightAnchor: rightAnchor)
     }
     
     public init(topAnchor: VViewAnchor) {
-        self.topAnchor = topAnchor
-        self.leftAnchor = .Parent
-        self.bottomAnchor = .Parent
-        self.rightAnchor = .Parent
+        
+        self.init(topAnchor: topAnchor, leftAnchor: .Parent, bottomAnchor: .Parent, rightAnchor: .Parent)
     }
     
     public init(leftAnchor: HViewAnchor) {
-        self.topAnchor = .Parent
-        self.leftAnchor = leftAnchor
-        self.bottomAnchor = .Parent
-        self.rightAnchor = .Parent
+        self.init(topAnchor: .Parent, leftAnchor: leftAnchor, bottomAnchor: .Parent, rightAnchor: .Parent)
     }
     
     public init(bottomAnchor: VViewAnchor) {
-        self.topAnchor = .Parent
-        self.leftAnchor = .Parent
-        self.bottomAnchor = bottomAnchor
-        self.rightAnchor = .Parent
+        
+        self.init(topAnchor: .Parent, leftAnchor: .Parent, bottomAnchor: bottomAnchor, rightAnchor: .Parent)
     }
     
     public init(rightAnchor: HViewAnchor) {
-        self.topAnchor = .Parent
-        self.leftAnchor = .Parent
-        self.bottomAnchor = .Parent
-        self.rightAnchor = rightAnchor
+        self.init(topAnchor: .Parent, leftAnchor: .Parent, bottomAnchor: .Parent, rightAnchor: rightAnchor)
     }
     
     public init() {
-        self.topAnchor = .Parent
-        self.leftAnchor = .Parent
-        self.bottomAnchor = .Parent
-        self.rightAnchor = .Parent
+        
+        self.init(topAnchor: .Parent, leftAnchor: .Parent, bottomAnchor: .Parent, rightAnchor: .Parent)
     }
     
     func apply(bounds: CGRect, layouts:[UIView: CGRect]) -> CGRect {

            return layouts[v].flatMap { $0.origin.y + $0.size.height/2 }
        }
    }
}

public struct Viewport {

            return layouts[v].flatMap { $0.origin.x + $0.size.width/2 }
        }
    }
    
    var view: UIView? {
        switch self {
        case .Parent:
            return nil
        case .Left(let v):
            return v
        case .Right(let v):
            return v
        case .HCenter(let v):
            return v
        }
    }
}

public enum VViewAnchor {
