added OO abstraction for reads and sets of reads