Extremely minor: would it be cleaner to return ObjectId and to pass that to getById, given the latter just creates an ObjectId again?