Switched from trait to class because of an reobfuscation issue