switch to a callback style of repl so that processing can be done asynchronously and more importantly to enable testing of repl functionality without spoofing stdin