add simple cache and refact delete sync