factoring out Document.find() logic into a DocumentFinder class