Step 3 Finished

And it only took 1080 lines of JavaScript.