     #
     if json["id"] and not Utils.isTempId(json["id"])
       @serverId = json["id"]
-    @constructor.attributesKeys ?= Object.keys(@constructor.attributes)
-    for key in @constructor.attributesKeys
+    for key in Object.keys(@constructor.attributes)
       continue if key is 'id'
       attr = @constructor.attributes[key]
       @[key] = attr.fromJSON(json[attr.jsonKey]) unless json[attr.jsonKey] is undefined

    else
      values["serverId"] ?= values["id"]

    @constructor.attributesKeys ?= Object.keys(@constructor.attributes)
    for key in @constructor.attributesKeys
      continue if key is 'id'
      continue unless values[key]?
      @[key] = values[key]

  #
  toJSON: (options = {}) ->
    json = {}
    for key in Object.keys(@constructor.attributes)
      continue if key is 'id'
      attr = @constructor.attributes[key]
      continue if attr instanceof Attributes.AttributeJoinedData and options.joined is false
