Use BaseMod system, refactoring