added self-adapting techniques