add more commands and refactored a bit