more adjustments on the state change observer logic