base commit. Untested
minor tweaking
Fixed test
Passing tests