internal function also being cached, for the same object