     }
     
     public var vector: Vector {
-        return Vector(x: x, y: y, z: z)
+        get {
+            return Vector(x: x, y: y, z: z)
+        }
+        set {
+            self.x = newValue.x
+            self.y = newValue.y
+            self.z = newValue.z
+        }
     }
 }
 

}

public func *= <C: ColorVectorConvertible, T: MatrixProtocol>(lhs: inout C, rhs: T) {
    lhs = C(lhs.vector * rhs)
}

public struct RGBColorModel : ColorModelProtocol {

    }
    
    public var vector: Vector {
        get {
            return Vector(x: red, y: green, z: blue)
        }
        set {
            self.red = newValue.x
            self.green = newValue.y
            self.blue = newValue.z
        }
    }
}

