add lock fun