adabt function