Major progress/refactoring/refucktoring