I think this should probably be a class; I'm not an expert on C++ style issues, but this feels more like a pass-by-reference object, and I think most of the other stuff in the runtime is a class.