I'm actually happy with how this works -- the begin state is special because its the only one that's actually registered with the app. All the others are delegated to by the begin state.