Implementation of a minimal user interface

* Added a minimal user interface
* Refactoring: algorithm and display are now clearly separated