cal should be simpler.