cache cfunction results