добавлены абстракции для более легкого переопределения методов при необходимости