isolines tesselation

hi i am trying to tesselate an isoline but only get 2 points on the screen. im assuming im getting an error somewhere before my fragment shader because all my fragment shader does is set the output color to red and the points are white
here are my tesselation evaluation and control shaders:

const char *tcshader = {
		"version 430 core
"
		"layout (vertices = 4) out;
"
		"void main(void)
"
		"{
"
                "               if (gl_InvocationID == 0)
"
                "               {
"
		"		gl_TessLevelOuter[0] = 5;
"
		"		gl_TessLevelOuter[1] = 5;
"
		"               }
"
                "	        gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
"
		"}"};
	const char *teshader = {
		"version 430 core
"
		"layout (isolines) in;
"
		"void main(void)
"
		"{
"
		"	vec4 p1 = mix(gl_in[0].gl_Position, gl_in[1].gl_Position, gl_TessCoord.x);
"
		"	vec4 p2 = mix(gl_in[2].gl_Position, gl_in[3].gl_Position, gl_TessCoord.x);
"
		"	gl_Position = mix(p1, p2, gl_TessCoord.y);
"
		"}"};

i then use glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); and set the patch vertices using glPatchParameteri(GL_PATCH_VERTICES, 2);
i then draw with the command glDrawArrays(GL_PATCHES, 0, 4);
what am i doing wrong?