Now with GUI for debugging purposes and some simple Unit Tests.