refactoring command classes