Add a bunch of tests, find out there are more cases to cover