Don't read the file until we need to so that recursive calls don't get splatted