add a lot of tests