I think this shouldn't be nil right? I mean "[[user valueForKey:@"id"] shouldBeNotNil]" since we set it but...

The problem here is as we mutate the collection inside the lib a "different' copy is returned (with the same key-values as the original but different mutable copy). Now the original user dictionary is not aware of it ("id" hasn't be set) if you log.

In my vie since as a library we may update the object and set an ID, we need in our API doc to explicit say that a mutable dictionary is required cause we can manipulate the object. This is in par with apple guideline of having the method signatures to identify the mutability of an object (see more [here](https://developer.apple.com/library/mac/documentation/general/conceptual/CocoaEncyclopedia/ObjectMutability/ObjectMutability.html))