added node and edge classes