The CacheManager should handle the cleaning itself.
It should handle the removal of old objects.
It should keep a 'max size' attribute. When cleaning, if the size is greater than the max size, it should sort the cached elements and only keep the firsts (using Stream.sorted().limit()).