add some modigying algorithms