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


*/

public protocol PropertyAccess : Identiy, Context {
    
    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()
    
}


      public subscript(keyNode: Node) -> Property {
        mutating get {
            //assert(context != nil, "No GraphContext available")
            let result = propertyByKey(keyNode)
            if let result = result {
                return result
            } else {
