переделал кеширование, сделал его thread-safety