adaptive(part1)