baseline commit before branch to restructure the Program and Shader classes