fix ; use add instead of addNC
remove duplicated code
remove old final_exp
fix comment and rename var