Agree re:name. Disagree re:relocation - the module contains a bit of logic common to several model classes, and operates on model entities - even though it's a module it belongs to app/models.