Move finish() to CPP, and clean up some of Assembler.