Просто неожиданно для себя набросал вот такой вот вариант, работы тут куча, но вот пока что получается)