abstract nodes