I'm not sure of a good structure for a new flush class, but i recall it is very obvious if the parts are thought about together. I end up writing a new class structure, because so many of the parts move around when changing how the data is organized.