Я просто оставлю это здесь.. https://geektimes.ru/post/263658/