Cleanup/rearrangement
Optimize OpenGL rendering

Use vertex arrays instead of immediate-mode.