rename vars, Waitable IS a Lockable, Waiter IS a Lock
first pass at PFKHSM