//=============================================================================
        //Methods
        //=============================================================================


        internal void Load()
        {
            //=============================================================================
            //Setup Clearing
            GL.ClearColor(0, 1, 0, 0);

            //=============================================================================
            //Setup Depth
            GL.Enable(EnableCap.DepthTest);
            GL.DepthMask(true);
            GL.DepthFunc(DepthFunction.Less);
            GL.DepthRange(0.0, 1.0);
            GL.ClearDepth(1.0);

            Console.WriteLine("Setup Clearing Functions");



            //=============================================================================
            //Load Shaders
            shaders.Add(FileOps.LoadShader(ShaderType.VertexShader, "Shaders/Standard.vert"));
            shaders.Add(FileOps.LoadShader(ShaderType.FragmentShader, "Shaders/Standard.frag"));

            programList.Add("default", Shaders.CreateProgram(shaders));

            Console.WriteLine("Shaders Loaded - Num: " + shaders.Count.ToString());
            Console.WriteLine("Programs Loaded - Num: " + programList.Count.ToString());

            //=============================================================================
            //Load Textures
            Structs.TextureData texture = FileOps.LoadTexture("Cube", "Textures/Cube.bmp");
            //TODO Load all Meshes, Textures
            //Auto Load every file in each folder automatically
            //Load texture to GPU
            textureLocationList = LoadTexturesToGPU(new Structs.TextureData[1]
            {
                texture,
            }
                                                    );


            //=============================================================================
            //Load Meshes
            Structs.MeshData mesh = FileOps.LoadMesh("Cube", "Meshes/Cube.obj");
            meshLocationList = LoadMeshesToGPU(new Structs.MeshData[1]
            {
                mesh
            });

            //=============================================================================
            //Setup Camera
            camera.Transform.Translate(new Vector3(0, 0.00f, 0f));
            camera.SetProjection(1f, 0.001f, 20f);
        }