implemented some read functionality