Refactor

@ShaunYearStrong 

Massive refactor, better data storage/ persistence and more sensible naming conventions.

This should make things a lot easier for moving, testing and developing on environments which aren't my laptop.

Take a look and let me know- its a lot to look at but it should make sense.