all tests pass, closes #198