done some more work on this stuff