public static Program getProgramForShaders(final Shader... shaders)
	{
		final int programID = glCreateProgram();
		for (final Shader shader : shaders)
		{
			glAttachShader(programID, shader.getShaderID());
		}

		glLinkProgram(programID);

		if (glGetProgram(programID, GL_LINK_STATUS) == GL_FALSE)
		{
			throw new ProgramLinkException(
					"Could not link program. Error log:\n"
							+ glGetProgramInfoLog(programID, GL_INFO_LOG_LENGTH));
		}

		for (final Shader shader : shaders)
		{
			glDetachShader(programID, shader.getShaderID());
		}

		return new Program(programID);
	}