functions aded, adaptive