  NTImageRectangleEffect is used to draw a colored rectangle anywhere on a UIImage.
  */
 public class NTImageRectangleEffect: NTImageEffect {
-    public var rect: CGRect = CGRectZero
+    public var rect: CGRect {
+        get {
+            var x: CGFloat = 0
+            var y: CGFloat = 0
+            switch anchorPosition {
+            case .TopLeft:
+                x = anchor.x
+                y = anchor.y
+            case .CenterTop:
+                x = anchor.x - width/2
+                y = anchor.y
+            case .TopRight:
+                x = anchor.x - width
+                y = anchor.y
+            case .CenterLeft:
+                x = anchor.x
+                y = anchor.y - height/2
+            case .Center:
+                x = anchor.x - width/2
+                y = anchor.y - height/2
+            case .CenterRight:
+                x = anchor.x - width
+                y = anchor.y - height/2
+            case .BottomLeft:
+                x = anchor.x
+                y = anchor.y - height
+            case .CenterBottom:
+                x = anchor.x - width/2
+                y = anchor.y - height
+            case .BottomRight:
+                x = anchor.x - width
+                y = anchor.y - height
+            }
+            return CGRectMake(x, y, width, height)
+        }
+        set {
+            self.anchor = CGPointMake(newValue.origin.x, newValue.origin.y)
+            self.anchorPosition = .TopLeft
+            self.width = newValue.width
+            self.height = newValue.height
+        }
+    }
     public var color: UIColor = UIColor.clearColor()
+    public var anchor: CGPoint = CGPointZero
+    public var anchorPosition: NTImageEffectAnchorPosition = .TopLeft
+    public var width: CGFloat = 0
+    public var height: CGFloat = 0
     
     /**
      Initializes Rectangle effect with default values

            return rect
        case "color":
            return color
        default:
            return nil
        }

    //MARK: - Mock KVO System
    
    override public func acceptedKeys() -> [String] {
        return ["rect", "color", "anchor", "anchorPosition", "width", "height"]
    }
    
    override public func changeValueOf(key: String, to obj: Any) -> Bool {
