add more algorithms