need readfile funtion