Answers from user gfxifham