refactoring, add commands