begin UndirectedBase