add some algorithmes