CRUD generator