added dispersal handling