more model cleaning
Avoid premature query optimization

However, this will *really* need to be cleaned up later --
I anticipate that this will be the most-used API endpoint,
and it can't be doing hundreds or thousands of database queries
each time it's requested.