Это да, простой и эффективный дизайн это сложно. Рука постоянно тянется лишнюю абстракцию запихнуть туда где она не даёт никакого бенефига. Переписывание всего по 10 раз пока не получишь ту самую финальную форму.
хороший дизайн всегда рождается в муках.
Первый вариант - это срезание углов и привычные шаблоны
Второй - антишаблон
Третий и последующие уже что то сбалансированное и рожденное на ошибках двух или более предшествующих попыток)