separate shader_manager