separation of models