Could you tell me, correctly whether I think?

I need to describe my pawn movement logic, I create a class inherited from UPawnMovementComponent, give it the name “New”. Create a pawn, it will add any conflict (usually a capsule) and a “New” component. When a collision is triggered, I respond to this event and it passes me the FHitResult value. From this structure I can take the normal of the surface and transfer it to the “New” component and make any movements of the pawn.