Если анализировать построение, становится заметно, что эта логика не фиксируется в одном шаблоне, и меняется в каждой версии.