basic models and CRUD