put the models in a separate file for cleanliness