change the name and fix bugs