added normals implementation here