split the file retrieval implementation across multiple source files