NetworkX

Working on an implementation with networkX.  Going to clean this all up
into three distinct branches I think (sooner or later)