Match state logic + pub/sub pattern