add a bunch more tests