How to remove the mesh and replace CharacterMovement derived from ACharacter class

There is no constructor for the ACharacter class which takes two arguments so that i can call both
DoNotCreateDefaultSubobject and SetDefaultSubobjectClass and pass them as parameters.

I have successfully done both so far but not at the same time.

So is there any way to both remove the mesh and replace the CharacterMovement component derived from the parent class ACharacter?

Found out the solution after all.

Normally if I wanted to replace the default CharacterMovement component with another one i would do sth like that

AGameCharacter::AGameCharacter(const FObjectInitializer &ObjectInitializer) 
    :  Super(ObjectInitializer.SetDefaultSubobjectClass<UMyCharacterMovement>
       (ACharacter::CharacterMovementComponentName) 
{
}

and if I wanted to remove the mesh i would do sth like this

AGameCharacter::AGameCharacter(const FObjectInitializer &ObjectInitializer)
    : Super(ObjectInitializer.DoNotCreateDefaultSubobject(ACharacter::MeshComponentName))
{

}

However functions like DoNotCreateDefaultSubobject and SetDefaultSubobjectClass return an object of type FObjectInitializer. Therefore, one can use this object to call another function and the solution looks like this

AGameCharacter::AGameCharacter(const FObjectInitializer &ObjectInitializer) 
    :Super(ObjectInitializer.SetDefaultSubobjectClass<UMyCharacterMovement>     
        (ACharacter::CharacterMovementComponentName).DoNotCreateDefaultSubobject
            (ACharacter::MeshComponentName))
{

}