undirected branch
refactoring
Merge branch 'undirected'