some fixes, .Source on function Ast nodes, refactor