added lock functionality, tests 1-12 work now. unsure why the hard lock cases still failing