I havnet committed in a while
It all works, time to refactor
Improved the file structure