Implementations now pass the tests