refactor svg reporter to be an optional, external implementation