Also, why not pass in the file name or main operable into  the constructor. Then just pass options to validate that may modify how it validates. Seems like that would be better encapsulation.