start of a quickcheck impl