                 return CGPointMake(vectors[0], vectors[1])
             case .CGRect:
                 return CGRectMake(vectors[0], vectors[1], vectors[2], vectors[3])
+            case .CGSize:
+                return CGSizeMake(vectors[0], vectors[1])
             case .Double:
                 return vectors[0]
             case .CGFloat:

public enum InterpolatableType {
    case CGPoint
    case CGRect
    case Double
    case CGFloat
    case Int

        return IPValue(vectors: [self.origin.x, self.origin.y, self.size.width, self.size.height], type: .CGRect)
    }
}

extension CGSize: Interpolatable {
    public func vectorize() -> IPValue {
        return IPValue(vectors: [self.width, self.height], type: .CGSize)
    }
}


extension NSNumber: Interpolatable {
    public func vectorize() -> IPValue {
