some of these only need read locks and can be RLock and RUnlock