Huge refactor. Less files, moar fun