introducing reader and writers separation