 
 */
 
-public protocol PropertyAccess : Identiy, Context {
+public protocol CRUD {
+    
+    // create and read missing :)
+    
+    mutating func update()
+    mutating func delete()
+    
+}
+
+
+public protocol PropertyAccess : Identiy, Context, CRUD {
     
     var nextPropertyID: UID {get set}  // internal link to the property
     
-    var propertiesArray: [Property] {get}  //
-    var propertiesDictionary:[UID: Property] {get}
-    
-    subscript(keyNode: Node) -> Property? {get set}
-    
-    func propertyForKey(keyNode:Node) -> Property
-    
-    func containsProperty(keyNode:Node) -> Bool
-    
-    func update()
+    //var propertiesArray: [Property] {get}  //
+    //var propertiesDictionary:[UID: Property] {get}
+    
+    subscript(keyNode: Node) -> Property { mutating get}
+    
+    func propertyByKey(keyNode:Node) -> Property?
+    
+    //func containsProperty(keyNode:Node) -> Bool
     
 }
 

        }
        
        // CONTEXT WRTIE
        context.update(property)
    }
    
    

        }
    }
    
    public func propertyByKey(keyNode : Node) -> Property? {
        
        var result : Property? = nil
        
