Answers from user jcraften