         return O.cs_fromRaw(object: self.rawObject)
     }
     
+    
+    // MARK: Value.Required utilities
+    
     public func value<V: ImportableAttributeType>(for property: (O) -> ValueContainer<O>.Required<V>) -> V {
         
         return V.cs_fromImportableNativeType(
             self.rawObject.value(forKey: property(O.meta).keyPath)! as! V.ImportableNativeType
         )!
-    }
-    
-    public func value<V: ImportableAttributeType>(for property: (O) -> ValueContainer<O>.Optional<V>) -> V? {
-        
-        return (self.rawObject.value(forKey: property(O.meta).keyPath) as! V.ImportableNativeType?)
-            .flatMap(V.cs_fromImportableNativeType)
-    }
-    
-    public func value<V: NSCoding & NSCopying>(for property: (O) -> TransformableContainer<O>.Required<V>) -> V {
-        
-        return self.rawObject.value(forKey: property(O.meta).keyPath)! as! V
-    }
-    
-    public func value<V: NSCoding & NSCopying>(for property: (O) -> TransformableContainer<O>.Optional<V>) -> V? {
-        
-        return self.rawObject.value(forKey: property(O.meta).keyPath) as! V?
     }
     
     public func setValue<V: ImportableAttributeType>(_ value: V, for property: (O) -> ValueContainer<O>.Required<V>) {

        )
    }
    
    public func setValue<V: NSCoding & NSCopying>(_ value: V?, for property: (O) -> TransformableContainer<O>.Optional<V>) {
        
        self.rawObject.setValue(

        )
    }
    
    public func primitiveValue<V: NSCoding & NSCopying>(for property: (O) -> TransformableContainer<O>.Optional<V>) -> V? {
        
        return self.rawObject.primitiveValue(forKey: property(O.meta).keyPath) as! V?
    }
    
    public func setPrimitiveValue<V: NSCoding & NSCopying>(_ value: V?, for property: (O) -> TransformableContainer<O>.Optional<V>) {
