ready to impl more algo