update git ignore file
polish program style
enable multiple language support