Putting the methods directly on some sort of state object would be another option potentially...