wrap sets in LazySet to make them immutable
simplified method names, added doc
use implicit iteration
removed EdgeFactory, further simplifications