added a parser and repl loop