Refactored the architecture. Added a really simple UI, test framework.