write implementation. begining of tests. failing