using a handle to reduce repeated allocations
platform independent disasm exception
delete unnecessary functions