#2 generic routes CRUD