cache key respects function args/kwargs