add data reading