Really big change: 1. add Interruption Buffer. 2.change from c to cpp, to fix strange struct probleams, and replace struct with class