algorithm adaptation