properly calculating normals