reading external files should be sync, not async