Working shader class. no uniforms and attributes yet.