added file read support