new feature : support character output and add some explanation of the script