Refactor
Merge with trunk
Merge with trunk
Merge pull request #118 from lyncodev/refactor-merged

Refactor of AST