I've just realised that what I described was much closer to the previous design of this class. If we went back to that, could the rest of the changes be made to work with it?