WIPWorked some more - think its close - Unit tests all pass