a more sane way to extract arcs, required a rewrite of internals