improved parser, fixed disassembler