added request queue. changed write and read from private to protected