This is the fat rewrite. It compiles and the main test case passes. Peripherals (like parsers) not yet converted.