get partial answers
weird answer
added a function
works fine
added all tests
cleaned up