add abstruct syntax