Добавил нужный функционал. Осталось отрефакторить... ПОЛНОСТЬЮ