Rebecca Murphey feedback taken into account.
Minor edits after trial run-through.
Revised with vars and event listeners.