code seems to be running well , probably has some bugs and some stuff
and maybe some stuff is not implemented well , but the function all work
and the tester as well