refactoring and normals