refactored CLI.