I think `REPLSession` and REPL adapter can be merged into one. The engine application can just contain the console controller and route definition. It makes the code much more compact and easier to follow :)