Good way to structure a character controller?

Hey, I’m moving over to unreal from unity and I’m in the process of creating my first character controller in C++.

I was wondering if there’s a generally accepted or standard way to structure something like this.
I’m basically modifying the third person template to get what I’m trying to achieve. In unity I’d make a script that solely handles player movement and
anything that would be involved would call that script to do things, all things would be executed from Update/FixedUpdate.

In UE from what I can tell, I’m going through the pawn class to add movement input, should I stick to using functions like AddMovementInput?
I’m used to modifying the player’s velocity values directly to get more control but that seems like it’s not a good idea here.

To give a sense of what I’m trying to do it’s things like real quick movements like dashing, charging, sliding, gliding.

Any advice/insights appreciated