async file viewer