Refactor code to minimise cross-package dependencies.
Make sure we don't pull in ASM4 by mistake (will be updating to use that API later on)