base reader is thread safe
base writer is thread safe