all tests pass except for Either