moved to extra package to avoid runtime deobfuscation bug