actually read data