modified simple assembler