could we make this more effecient by sorting the fathers array here?