в начале каждой итерации придется спрашивать заинтересованные стороны, какие функции реализовать следующими.