separating ast from parser
new design for ast working fine