Good point, we should probably check if it is `None` or does not exist.

About allowing keys to be set, I think we should maybe ensure that keys are automatically generated uuids, since allowing users to set keys would make the chance of collisions too likely.