completed CRUD for categories