fix bugs & add some function