wouldn't it make more sense for this to do a `get_or_create` type of thing? seems prone to creating a bunch of dupe currency objects.