Альтернативная версия https://reactor.cc/post/6072050