some more work (still in progress)