changes:
* improve current code
* improve c code style, by adding header file,