         }
     }
     
-    /**
-    A variable that provides access to the width of the receiver. Animatable.
-    The default value of this property is defined by the image being created.
-    Assigning a value to this property causes the receiver to change the width of its frame. If the receiver's `contrainsProportions` variable is set to `true` the receiver's height will change to match the new width.
-    */
+    /// A variable that provides access to the width of the receiver. Animatable.
+    /// The default value of this property is defined by the image being created.
+    /// Assigning a value to this property causes the receiver to change the width of its frame. If the receiver's
+    /// `contrainsProportions` variable is set to `true` the receiver's height will change to match the new width.
     public override var width : Double {
         get {
             return Double(view.frame.size.width)

}

public class C4Image: C4View {
//MARK: Initializers
    /**
    Initializes a new C4Image using the specified filename from the bundle (i.e. your project), it will also grab images from the web if the filename starts with http.

        let img = C4Image("logo")
        canvas.add(img)

    - parameter name:	The name of the image included in your project, or a web address.
    */
    convenience public init(_ filename: String) {
        self.init(filename, scale: 1.0)
    }

    /**
    Initializes a new C4Image using the specified filename from the bundle (i.e. your project), it will also grab images from the web if the filename starts with http.
    
        let img = C4Image("http://www.c4ios.com/images/logo@2x.png", scale: 2.0)
        canvas.add(img)

    - parameter name:	The name of the image included in your project, or a web address.
    */
    convenience public init(_ filename: String, scale: Double) {
        if filename.hasPrefix("http") {
            self.init(url: NSURL(string: filename)!, scale: scale)

        self.init(cgimage: cgim!)
    }
    
    //MARK: Properties
    
    /// Returns the UIImageView of the object.
    ///
    /// - returns: A UIImageView object.
    internal var imageView : UIImageView {
        get {
            return self.view as! UIImageView
        }
    }
    
    /// Returns a UIImage representation of the receiver.
    ///
    /// - returns:	A UIImage object.
    public var uiimage: UIImage {
        get {
            return imageView.image!
        }
    }
    
    /// Returns a CGImageRef representation of the receiver.
    ///
    /// - returns:	A CGImageRef object.
    public var cgimage: CGImageRef {
        get {
            return uiimage.CGImage!
        }
    }
    
    /// Returns a CIImage representation of the receiver. Generally, this would be used to work with filters.
    ///
    /// - returns:	A CIImage object.
    public var ciimage: CIImage {
        get {
            return CIImage(CGImage: cgimage)
        }
    }
    
    /// An object that provides the contents of the layer. Animatable.
    /// The default value of this property is nil.
    /// If you are using the layer to display a static image, you can set this property to the CGImageRef containing the image
    /// you want to display. Assigning a value to this property causes the layer to use your image rather than create a
    /// separate backing store.
    /// If the layer object is tied to a view object, you should avoid setting the contents of this property directly. The
    /// interplay between views and layers usually results in the view replacing the contents of this property during a
    /// subsequent update.
    public var contents : CGImageRef {
        get {
            let layer = imageView.layer as CALayer
