changed structure: using classes for ast