Closes #1. First version. Not completely working but demoable.