Extreme refactoring, much easier to work with now.
Forgot one file