finished refactoring, added normals and normal transforms, adding drawing modes and fragment shading