SurfaceNormal refactoring