use weak pointer in composite_surface_manager to reduce memory footprint