[DesignPhilosophy]PlayerControler, ReplaySpectators and HUDs: Informationflow

Right now i am facing a Designproblem and i wanted to know how to do it best in UE4.

I have:
My regular Playercontroller
A ReplaySpectatorPlayerController
My PlayerPawn
My FirstpersonHud

During gameplay, things can happen to my Pawn which need to be reflected on the HUD. Simple idea(in Pawn): Get the controller, cast to the PlayerController, get the Hud, set the Values. This would work, but adds a lot of dependencies and problems. The game allows to record replays and view the action in FirstPerson. The ReplaySpectatorPlayerController is supposed to be completely independend from the regular PlayerController. Therefore HUD updates would fail. My current Idea is, that a pawn exposes a set of events. Any PlayerController can then wireup the events to affect its HUD(Maybe even let the pawn expose an interface which is given to the HUD to do the wireup itself which encapsulates the code).

How would you do this?

PS: we need a BP/C++ neutral area for general development and such designquestions :confused: