         }
     }
 
+    ///  An optional view whose alpha channel is used to mask the receiver's content.
+    ///
+    ///  The mask view's alpha channel determines how much of the receiver's content and background shows through. Fully or partially opaque pixels allow the underlying content to show through but fully transparent pixels block that content.
+    ///  The default value of this property is nil. When configuring a mask, remember to set the size and position of the mask layer to ensure it is aligned properly with the layer it masks.
+    ///  The layer you assign to this property must not have a superlayer. If it does, the behavior is undefined.
     public var mask: C4View? {
         didSet {
             if let mask = mask, let _ = mask.view.superview {

            view.frame = oldFrame
        }
    }
    
    public dynamic var zPosition : Double {
        get {
            return Double(self.layer!.zPosition)

import UIKit

extension NSValue {
    ///  Initializes an NSValue with a C4Point
    ///
    ///  - parameter point: a C4Point
    convenience init(C4Point point: C4Point) {
        self.init(CGPoint: CGPoint(point))
    }
}

/// The C4View class defines a rectangular area on the screen and the interfaces for managing visual content in that area. The C4View class itself provides basic behavior for filling its rectangular area with a background color. More sophisticated content can be presented by subclassing UIView and implementing the necessary drawing and event-handling code yourself. The C4 framework also includes a set of standard subclasses that range from simple shapes to movies and images that can be used as-is.
public class C4View : NSObject {
    /// A UIView. Internally, C4View wraps and provides access to an internal UIView.
    public var view : UIView = UIView()

    ///  Initializes a C4View.
    public override init() {
    }
    
