farm out file reading to a utils library