implement simple read write lock hash
implement client