add some not very good algorithm