added opengl implementation