add syntax memo
refactor