modified _findAndModify to reduce recuresive locks