add sync and async file reading