refactored search interface