selecting an algorithm