added interfaces for nodes and edges