well, the issue is that you have an all-or-nothing API here. So if you are tryign to load 10 elements and your cache only contains 9 of them, you will now rebuild the 10 elements instead of using the 9 cached items and rebuilding only the missing one, just because you are not able to know what is missing and what is cached