Do we want to create a new ModelIdWrapper instance every time this is called? Do we support ids changing on an instance of a model? If so this may make sense but even so we should probably do some sort of caching.