     values = obj[prop]
     unless values
       values = obj[prop] = []
+    values.push(value)
+
+  addToPropListToObj = (obj, prop, value) ->
+    values = obj[prop]
+    # TODO: list in Array or direct object (latter prevents sets of mixed refs+lists)
+    if values instanceof Array
+      if values[0]['@list']
+        values = values[0]['@list']
+      else
+        l = []
+        values.unshift({'@list': l})
+        values = l
+    else if values
+      values = values['@list']
+    else
+      values = []
+      obj[prop] = {"@list": values}
     values.push(value)
 
 

        return @properties
      else
        return []

    getListLinks: ->

    getListValueProperties: ->

    getRevLinks: ->
      if @revs then @revs else []

        # TODO: .. and not content attr and getReference()
      if @properties and not @propertiesAsLinks
        @literal = data.getLiteral()
      @inlist = data.isInlist()

    getErrors: ->
      @data.errors
