locking and unlocked retrieve and read