all lock methods implemented