Refactored
Upgraded to ASM5 API