cleanups; move the shader programme code into a separate class