do it atomically;