Major Refactoring when loading mod