adding lots of test coverage