Доброго дня! Имеется следующая структура модулей:

Module1 выступает как главный, Module2 и Module3 дочерние, НО дочерние модули тоже рекуарят друг друга.
Проблема вот в чем, в главном модуле requare нормально подключает дочерний модуль возвращает класс. В дочерних же (видимо второй раз) возвращает какой то object.
Читал что requare работает как requare once и кэширует все. Дак почему он мне не возвращает класс, а какой то объект?