introduce Cachable trait to streamline cached requests
update tests for Cachable trait