all tests written, and all passing in example