with locking function