С алгоритмом разобрались, всегда начинаем сначала с него, а уже затем внедряем техники по работе с состоянием. Если делаем наоборот, то и результат получаем поверхностный.
Я люблю приводить в пример аналогию с айсбергом. Верхушка - работа с состоянием, а то, что находится под водой - более глубинные причины, которые и формируют тревогу.
крипольна