Simple Game Object Structure

I just started using UE and try to convert a blueprint mess into a C++ structure, which proofs to be a bit of a difficulty to get my head around. The simple game premise as follows:

Open map. First person player character moves freely. Several event objects. On button push a response happens based on the specific actor that is the current view target of the player. This response can be movement of the camera, or a UI like text overlay.

The objects on the map i successfully translated into an actor class whose “response event” can be altered and configured using uproperties. But im falling into the occasional trap when looking into the access of specific functionalities within a certain object. (like location handling by the pawn instead of the player controller)

Now im stuck a bit in regards to the structure of Input, Player Controller and Pawn. My approach so far:

1.Single Player controller possesses single pawn at game start.

2.Inputs for movement are directly handled and translated by the pawn class.

3.Input for interaction is handled by Player Controller, which gets the view target actor.

4.Player Controller checks the target actors properties, executes the pawns response.

I hope to get a structure i can transfer into other similar applications. If there are strong recommendations to push some aspects of it entirely into blueprint im open for suggestions, but preferable C++. Thanks a lot!