optimise?
optimise: don't copy graph