caching implemented

does not use LOCK_EX