complete implementation simple search