merged some function from zhang and add icon picture
change some details
revised some bugs