Lock

adds `.lock()` and `.unlock()`.

cc @calvinfo @gjohnson 
hmm yeah +1 from me -- @gjohnson what do you think ?