implemented locks