Answers from user TomSpencer