maybe we could subclass the weak disc to make the getter and setter functions methods instead, which may read better

e.g. `_object_storage_map.register(obj, self)`

just a thought