04 partially done
04 tests pass...