implementing cache, moving had begun to fail instead