self adaptive