assembler: restructured