Factor out file search code into its own classes