add some algorithems