Design and source code borrowed from Jon Barron's website. I am deeply grateful for his generous sharing of this template.