Some progress on Step 8. Step 9 looks about right, but needs to be tested.