implement 2/3 of the tests!