add lots of tests