allow user classes to customize gathering