Почистил код от лишних абстракций.
Завистливые функции перенес в соответствующие классы