self-adapting