Extract search to its own model class