             
         _propertiesDictionary!.removeValueForKey(property.keyNodeID)
         
-        let index = find(_propertiesArray!, property) // init propertiesArray in worst case
-        if (index != nil) {
-             _propertiesArray!.removeAtIndex(index!)
-        }
-       
-        // TODO: var -> let in all other implementations
+        //let index = find(_propertiesArray!, property) // init propertiesArray in worst case
+        let index = _propertiesArray!.indexOf(property)
+        if let index = index {
+             _propertiesArray!.removeAtIndex(index)
+        }
     }
     
     
     public func deletePropertyForKey(keyNode:Node) {
         if (context != nil) {
-            var property = propertyForKey(keyNode)
+            let property = propertyForKey(keyNode)
             if (property != nil) {
                 //var data = property.data
                 deleteProperty(property!)

    func createPropertyForKeyNode(keyNode:Node) -> Property {
        assert(context != nil, "No GraphContext available")
        
        var property = Property(graphElement: self, keyNode: keyNode)
        
        context!.registerProperty(property)
        addProperty (property)

        var previousProperty:Property? = nil
        var nextProperty:Property? = nil
        
        let nextPropertyID:UID = property.nextPropertyID
        let previousPropertyID = property.previousPropertyID
        
        if (nextPropertyID > 0) {
            nextProperty = context!.readProperty(nextPropertyID)
