add an algorithm