implemented gather rule