Более одетый вариант: https://sw.reactor.cc/post/4341422