My version

Hopefully this passes all the tests