Let the AutoCacheItem contain Donut instead of IDonut.
Make IDonut immutable to avoid mistakes.