Should this be an object rather than a "state" structure?