https://2017.codefest.ru/lecture/1162
Сложные данные, карты и интерфейс, который всё это объединяет.