Merge tests and properties into the new interface

I merged your updates and included all my tests and quickcheck properties, back into them, This should also cover my prior pull reqs