Выделил вспомогательные функции.