revision of locking interface