read2 modify from turorial2