#17 optimize caching for read operations