added improved FileReader