First pass done. Everything compiles and tests pass