only read what is necessary