fix#25
fix #25
fix #31
fix #37
fix #60
fix #58
fix #25
fix #62
fix #35
fix #17
fix #35
fix #57
fix #17
fix #57
fix #57
fix #57
banner
fix#56
fix#56
fix #56