IMplement gather