Expression Improve

Some code review and refactor - there is a lot of room for improvement.

Fixed GetActionType and GetFuncType
Merge remote-tracking branch 'origin/Fix' into Feature

* origin/Fix:
  Expression Improve