further organized opengl app