implement gatherList