Answers from user AndreyMakhlin