Finished proof of concept
Refactor (work in progress)
Writing tests and refactoring (work in progress)