Refactored
Upgraded to ASM 5.0.3