read local file if still available; else fetch