Nice. So were the HWs split along the usual lines of lexer, parser, codegen, etc? You said it was a surprise, so I wonder how else it was split to actually make it surprising. Or was it hard enough to judge the purpose of the assembly version that it didn't matter?