add signature
fix some bugs & add prompt for user
ignore case