be more explicit about how the model definitions work