revise header include style
add unittest case
fix bug