This method gets a bit confusing because its name sounds like a state query but it also changes the state.