A question about shaders and removing unwanted variables

Okay I’m waiting for the engine to compile. Basicly my first try is just gonna have the diffuse color where light shines and shadow color where there is supposed to be shadow. I thought of using the subsurfacecolor pin for this. Later I will try to figure out how to do the shadow clamping for toon effect and a variable for adjusting where the shadow starts. So while I wait for the engine to compile, can anyone point out how horribly stupid this is? Keep in mind I’m completely fresh to writing shaders…

float3 StylizedShading( FGBufferData GBuffer, float3 L, float3 V, half3 N )
{

float3 shadowColor = ExtractSubsurfaceColor(GBuffer);

float3 H = normalize(V + L);  
float NoH = saturate( dot(N, H) );  
float3 color = lerp(GBuffer.DiffuseColor, shadowColor, NoH);

return color;  

}