refactor for Lamdas, Command interfaces, commandHistory
gui and arg-parsing todo