Pulled out Edge to ioGraphEdge so it wasn't type dependant