cache mehod (refctoting)