Answers from user jgray2