Breaks most of the file related logic out into it's own class.