abstract and intro(not completed) grammar