added a bunch of test