data is read once and saved to memory