Edited. Some bigger revisions here, feel free to review. I added some show-don't-tell style -- let me know if you have any questions.