implement disassembler, tests