Each agent contains a Bag called population. Within population there are number of IntBags. So population looks like this: ((1,1,1,1,1),(1,1,1,1,1),(1,1,1,1,1),(1,1,1,1,1),(1,1,1,1,1,1)....(1,1,1,1,1)). On each step I perform some operations with population, but it is irrelevant at the moment. 

Each 10th(for example) step I want my agents to exchange IntBags(aka individuals). The problem is that while I can call map.getNeighborsExactlyWithinDistance() or something similar, and get individuals from the copy(or copies) of neighboring agents method returns by calling getMigrants() method I created for agent, I can't figure out a way to remove individuals who migrated from the original neighbor.