commands refactored