adapt to data