improve indirect searching ... still needs refactoring