figure out and implement selection a few times.  refactor constructors to take graph only.