JPM: unit tests succeed, including start of a cache invalidation test; TODO: rethink abstractions