Search refactored with a new interface