Removed FileFilterProgram class. Lots of refactoring. Now Program and subclasses accept args in the form of iterables.