support cached computations