what if the file is 50 GB in size? it should read on demand part of the file as the user scrolls up or down, not all of the file the user wants to open. also, if there is going to be a cache, it should be configurable.