closes #35: implemented controller action caching