added a bunch of tests