implemented diffuse and blinn phong