this no longer assigns the id to new objects, which will end up breaking things.  admittedly, maybe there should be a `setIdentity` counterpart for `getIdentity` to make the abstraction complete but you still need to assign the identity to newly added objects somehow.