Implement FileFilter
Split file collecting algorithm to FileFilter