Works, adding tests
Passes tests