added most of the tests