Revert "Revert "Assembler""

This reverts commit 880eed596bf20dfffa01b6306dd8070bf985e8d4.

Revert "Assembler"

This reverts commit
f65256a15e318f1852ecc72bce05aa604a34dc49.