fill in the rest of the GL functions.  finally