Rename Model class to MeshRenderer. A Model is more something that handles loading 3D model data from disk.
Improve rendering loop, minimising calls to switch shader programs (glUseProgram()) and vertex states (glVertexAttribPointer​())