add locking