cache implement demo