node and edge