add decorator and cache demo