start decoupling between object and GL stuff