now with passing tests