adjusted to cache callback changes