modified data reading