Rvirding 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