Custom renderer

I put a breakpoint at the beginning of the function

void FDeferredShadingSceneRenderer::Render(FRHICommandListImmediate& RHICmdList)

and went through it step by step. I’m starting to feel a bit more comfortable than before with unreal deferred rendering.
If I want to create my custom renderer, do I create my own FSceneRenderer ?

The renderer is created in SceneRendering.cpp line 1660

FSceneRenderer* SceneRenderer = FSceneRenderer::CreateSceneRenderer(ViewFamily, Canvas->GetHitProxyConsumer());

Then I guess I would have to modify this function so that it creates and returns my custom renderer. (SceneRendering.cpp line 1383 to 1394)

FSceneRenderer* FSceneRenderer::CreateSceneRenderer(const FSceneViewFamily* InViewFamily, FHitProxyConsumer* HitProxyConsumer)
{
	bool bUseDeferred = InViewFamily->Scene->ShouldUseDeferredRenderer();
	if (bUseDeferred)
	{
		return new FDeferredShadingSceneRenderer(InViewFamily, HitProxyConsumer);
	}
	else
	{
		return new FForwardShadingSceneRenderer(InViewFamily, HitProxyConsumer);
	}
}

I’m wondering if that is the way to modify the renderer or if there is a cleaner way of doing it?