Yup, it could be definitely modelled as an instance of the gen event pattern. I have decided though to proceed with the current API because it gives flexibility for the formatter implementation to choose how it will store the data.