protect against concurrent access