WIP -- more tests passing, plenty left to fix