dynamically adapt