implemented single move cache