modified assembler