add CacheableTrait