hmm… but this creates problems: if i call any functions from inside the callback, the state will be either before the switch or after it. my current method would guarantee that SwitchedFrom is called while ActiveChat is still the "from chat" and SwitchedTo is called when ActiveCHat is the "to chat"