Fix new caching methods

  - previous 2 commits are canceled.
  - Add cached_method_with_custom_cache decorator
    - old cached_method is left as is
  - Add corrensponding unittests