It all works, with tests