doc
search factory refactoring