add rudimentary action caching