better data hiding of graphics api