Extract shaders and programs to their own module