add some algorithms