start lock implementations