add cacheable annotation