dynamically load EGL as needed