added read2() function