Finished part 3. Forgot that event handlers in JS will add to an array of handlers for on; switched to once to fix it in this case