updated assembler