Adding a bunch of tests and property stuff