This looks like it should be a Map, any reason not to?