Answers from user AdamShneider