removed undirect option, if undirected, just use two edges
renamed objects to eliminate confusion
simplify
updated readme
added cyclic checking function sig