create, edit, delete, list refactoring