refactor cacher call - fixed and rebased