Clumsy attempt to retain all the important methods before refactoring
Started refactoring and moving stuff around