add more tests, including quickcheck, and reenable the case operator