converted into a REPL. More options and better design