Refactoring, restructuring, some boss mode and everything works