advanced FileReader