IMO, this class should take as input the two assignment arrays, not the filenames. The caller should open the files. Unless there are compelling countervailing reasons, I think the IO layer should be separate from the library classes/functions.