add more abstraction for cache signatures generation