adapt to live environment