try to implement some opengl components