     }
     
     // MARK: Property
-    var propertyID : UID? {
+    var propertyID : UID {
         get {
             return data.nextPropertyID
         }
-        set(newID) {
-            if newID != data.nextPropertyID {
-                if (newID != nil) {
-                    data.nextPropertyID = newID!
-                } else {
-                    data.nextPropertyID = 0
-                }
+        set {
+            if newValue != data.nextPropertyID {
+                data.nextPropertyID = newValue
                 dirty = true
             }
         }

    }

    // MARK: OUT
    var outRelationshipCount: Int? {
    get {
        return 0;
    }
    }
    
    var firstOutNode: Node? {
    get {
        return nil;

    
    
    // MARK: IN
    
    // only available for testing, not public
    var inRelationshipID : UID {
        get {
            return data.nextInRelationshipID
        }
        set {
            if newValue != data.nextInRelationshipID {
                data.nextInRelationshipID = newValue
                dirty = true
            }
        }
    }
    
    var _inRelationships:[Relationship]! = nil
    
    public var inRelationships: [Relationship] {
        get {
            if (_inRelationships == nil) {
                _inRelationships = [Relationship]()
                
// TODO
            }
            
            return _inRelationships;
        }
    }

    
    var inRelationshipCount: Int? {
        get {
            return 0;
        }
    }
    
    var firstInNode: Node? {
        get {
            return nil;
        }
    }
    
    var lastInNode: Node? {
        get {
            return nil;
        }
    }
    
    func inRelationshipFrom(node: Node) -> Relationship? {
