An Object Oriented approach to OpenGL - in Java!