Частично прикрутил логику к интерфейсу