change interface to computed boolean; add functor clause for whendata