From e3bce7f361668ac9b13323b3e91775da15ef184b Mon Sep 17 00:00:00 2001
From: Arsen Melikyan <bugron@mail.ru>
Date: Sun, 1 Nov 2015 00:08:35 +0000
Subject: [PATCH] fixed spamming consequences

---
 ...ps-To-Plan-Better-So-You-Can-Write-Less-Code.md |  230 ++---
 ...s-to-organizing-a-successful-Campsite-event..md |   36 +-
 Academic-Honesty-Policy.md                         |   16 +-
 Accessing-the-database-from-your-frontend.md       |   24 +-
 Adding-Environment-Variables.md                    |   24 +-
 Angular-Resources.md                               |   26 +-
 Arithmetic-Operators.md                            |  168 ++--
 August-2015-Improvements.md                        |   48 +-
 August-Live-Stream.md                              |   38 +-
 Backend-file-structure.md                          |   16 +-
 Basejump-Resources.md                              |   70 +-
 Bobby-Tables.md                                    |    4 +-
 Bonfire-Arguments-Optional.md                      |  164 +--
 Bonfire-Binary-Agents.md                           |  178 ++--
 Bonfire-Boo-who.md                                 |   72 +-
 Bonfire-Check-for-Palindromes.md                   |  110 +-
 Bonfire-Chunky-Monkey.md                           |  274 ++---
 Bonfire-Confirm-the-Ending.md                      |   72 +-
 Bonfire-Convert-HTML-Entities.md                   |  160 +--
 Bonfire-DNA-Pairing.md                             |  126 +--
 Bonfire-Diff-Two-Arrays.md                         |  112 +--
 Bonfire-Drop-it.md                                 |  114 +--
 Bonfire-Everything-be-True.md                      |  138 +--
 Bonfire-Exact-Change.md                            |  184 ++--
 Bonfire-Factorialize-a-Number.md                   |  178 ++--
 Bonfire-Falsy-Bouncer.md                           |   96 +-
 Bonfire-Friendly-Date-Ranges.md                    |  200 ++--
 Bonfire-Map-the-Debris.md                          |  118 +--
 Bonfire-Meet-Bonfire.md                            |   74 +-
 Bonfire-Missing-letters.md                         |  170 ++--
 Bonfire-Pig-Latin.md                               |   92 +-
 Bonfire-Return-Largest-Numbers-in-Arrays.md        |  188 ++--
 Bonfire-Reverse-a-String.md                        |   66 +-
 Bonfire-Search-and-Replace.md                      |   84 +-
 Bonfire-Seek-and-Destroy.md                        |   76 +-
 Bonfire-Smallest-Common-Multiple.md                |  220 ++--
 Bonfire-Sorted-Union.md                            |  102 +-
 Bonfire-Spinal-Tap-Case.md                         |   78 +-
 Bonfire-Style-Guide.md                             |   76 +-
 Bonfire-Sum-All-Numbers-in-a-Range.md              |  120 +--
 Bonfire-Sum-All-Primes.md                          |  128 +--
 Bonfire-Symmetric-Difference.md                    |  182 ++--
 Bonfire-Validate-US-Telephone-Numbers.md           |  116 +--
 Bonfire-Where-art-thou.md                          |  186 ++--
 Bonfire-Where-do-I-belong.md                       |  116 +--
 Bonfire-Wiki-Template.md                           |   96 +-
 Bonus-SocketIO.md                                  |   16 +-
 Bootstrap.md                                       |   10 +-
 Brownie-Points.md                                  |   24 +-
 Camper-News.md                                     |   20 +-
 Campsites.md                                       |   32 +-
 Clear-Your-Browser's-Local-Storage.md              |   26 +-
 Code-of-Conduct.md                                 |   38 +-
 Coding-Help.md                                     |   40 +-
 Contributions-Guide---with-Typo-Demo.md            |  520 +++++-----
 Create,-Upload-and-Link-Animated-GIF-Image.md      |   12 +-
 Creating-a-New-Github-Issue.md                     |   26 +-
 Creating-a-new-API-endpoint.md                     |    8 +-
 Creating-a-new-directive.md                        |   22 +-
 Creating-a-new-route.md                            |   18 +-
 Develop-BaseJump-locally-and-run-on-c9.io.md       |   16 +-
 Dynamic-URLs-using-$routeParams.md                 |   58 +-
 Edit-or-Delete-message.md                          |    4 +-
 Epilogue.md                                        |   24 +-
 Fixing-exports.update.md                           |   26 +-
 For-loops-Explained.md                             |   16 +-
 Free-Code-Camp's-Privacy-Policy.md                 |  104 +-
 Free-Code-Camp-Deployment-Workflow.md              |   16 +-
 ...-Code-Camp-Front-End-Development-Certificate.md |   18 +-
 ...Code-Camp-Full-Stack-Development-Certificate.md |   20 +-
 Free-Code-Camp-JavaScript-Style-Guide.md           |  236 ++---
 Free-Code-Camp-completion-language-requirements.md |   12 +-
 Free-Code-Camp-logo.md                             |   18 +-
 Frontend-file-structure.md                         |   20 +-
 Functional-Programming---Higher-Order-Functions.md |   16 +-
 Get-info-about-the-current-user.md                 |   28 +-
 Getting-a-coding-job.md                            |   26 +-
 Git-Blame.md                                       |   16 +-
 Git-Resources.md                                   |   16 +-
 Gitter.md                                          |   16 +-
 Grunt.md                                           |    6 +-
 Guide-to-Basejumps-Table-of-Contents.md            |   60 +-
 ...g-Posts-to-Free-Code-Camp-Medium-Publication.md |   66 +-
 Help-I've-Found-a-Bug.md                           |   22 +-
 Help-Rooms.md                                      |   24 +-
 Higher-Order-functions.md                          |    8 +-
 Home.md                                            |   30 +-
 How-Free-Code-Camp-works.md                        |   30 +-
 How-FreeCodeCamp-Nonprofit-Projects-work.md        |  172 ++--
 How-GitHub-Issue-Moderators-AKA-Issue-Mods-Work.md |   32 +-
 How-JSONP-is-different-from-JSON.md                |   36 +-
 How-Long-Free-Code-Camp-Takes.md                   |   18 +-
 How-to-Get-Help-on-Gitter.md                       |   16 +-
 ...to-add-Free-Code-Camp-to-my-LinkedIn-profile.md |   18 +-
 ...est-use-the-Global-Control-Shortcuts-for-Mac.md |   28 +-
 ...fic-values-from-your-browser's-local-storage.md |   58 +-
 ...one-the-FreeCodeCamp-website-on-a-Windows-pc.md |   64 +-
 How-to-create-a-Campsite-for-your-city.md          |   70 +-
 ...oy-a-website-without-writing-any-code-at-all.md |   22 +-
 How-to-get-help-when-you-get-stuck.md              |   40 +-
 ...to-get-the-MEAN-stack-running-locally-on-OSX.md |  192 ++--
 How-to-install-Screenhero.md                       |   32 +-
 ...ho-is-in-charge-of-your-Campsite-on-Facebook.md |   32 +-
 ...kspace-selfie-with-FreeCodeCamp-on-instagram.md |   18 +-
 How-to-start-when-you-are-stuck-(I).md             |   40 +-
 How-to-start-when-you-are-stuck-(II).md            |   58 +-
 How-to-start-when-you-are-stuck-(III).md           |   26 +-
 How-to-use-the-Free-Code-Camp-Wiki.md              |   36 +-
 ...u-can-get-to-Inbox-Zero-with-Gmail-shortcuts.md |   40 +-
 ...o-stimulate-your-city's-Campsite-on-Facebook.md |   18 +-
 ...-team-to-interview-them-for-your-publication.md |   14 +-
 Html-and-CSS-Cheat-Sheet.md                        |   58 +-
 IIFE.md                                            |   16 +-
 ...ee-Code-Camp-is-free,-how-does-it-make-money.md |   12 +-
 Intro-to-Yeoman-Angular-Fullstack-Basejumps.md     |   16 +-
 JS-Regex-Resources.md                              |   58 +-
 JS-Resources.md                                    |  138 +--
 JavaScript-Truth-Table.md                          |    8 +-
 Learn-the-basics-of-the-VIM-editor.md              |   10 +-
 Linking-Your-Account-with-GitHub.md                |   14 +-
 List-of-Free-Code-Camp-city-based-Campsites.md     | 1048 ++++++++++----------
 Map.md                                             |  512 +++++-----
 More-useful-APIs.md                                |   60 +-
 October-2015-Improvements.md                       |  120 +--
 October-2015-Summit-Agenda.md                      |   14 +-
 Official-Free-Code-Camp-Chat-Rooms.md              |   40 +-
 ...that-Free-Code-Camp-recommends-to-nonprofits.md |   80 +-
 Pair-programming-and-why-it-is-special.md          |   24 +-
 Programming-Fundamental.md                         |    6 +-
 Promises.md                                        |   20 +-
 Pseudoclassical-class-definition-OOp.md            |   74 +-
 Pull-Request-Contribute.md                         |   42 +-
 Quick-tip-keep-data-in-sync.md                     |   52 +-
 RTFM.md                                            |   30 +-
 Refresh-Your-Browser-Cache.md                      |   18 +-
 ...aise-Donations-through-Free-Code-Camp-Commit.md |   14 +-
 Restrict-a-page-to-authenticated-users.md          |   28 +-
 Searching-for-Your-Issue-on-Github.md              |   16 +-
 Seed-data.md                                       |   10 +-
 Select-Issues-for-Contributing-Using-Labels.md     |   76 +-
 Slack.md                                           |   16 +-
 Spanish-Translation-Terminology.md                 |  116 +--
 Start-Here.md                                      |   84 +-
 Streaks.md                                         |    8 +-
 Stream-Your-Coding-Sessions-on-Twitch.tv.md        |   54 +-
 ...tarted-on-Zipline:-Build-a-personal-profile..md |    6 -
 Test-issue-with-Bonfire-truncate-a-string.md       |   42 +-
 The-main-advantages-of-Free-Code-Camp.md           |   12 +-
 Tips-on-How-To-Become-A-Good-Pair-Programmer.md    |   22 +-
 ...ing-Free-Code-Camp-into-Your-Native-Language.md |    8 +-
 ...or-FCCs-sorted-union-using-callback-function.md |   48 +-
 Twitch.md                                          |   12 +-
 ...ages-for-your-front-end-development-projects.md |  188 ++--
 Waypoint-Access-Array-Data-with-Indexes.md         |   24 +-
 ...t-Add-Alt-Text-to-an-Image-for-Accessibility.md |    8 +-
 Waypoint-Add-Borders-Around-your-Elements.md       |    4 +-
 ...Different-Padding-to-Each-Side-of-an-Element.md |   20 +-
 ...int-Add-Elements-within-your-Bootstrap-Wells.md |    4 +-
 ...Add-Font-Awesome-Icons-to-all-of-our-Buttons.md |    8 +-
 Waypoint-Add-Font-Awesome-Icons-to-our-Buttons.md  |    8 +-
 ...oint-Add-ID-Attributes-to-Bootstrap-Elements.md |    8 +-
 Waypoint-Add-Images-to-your-Website.md             |    4 +-
 Waypoint-Add-Placeholder-Text-to-a-Text-Field.md   |    4 +-
 ...int-Add-Rounded-Corners-with-a-Border-Radius.md |   22 +-
 Waypoint-Add-Two-Numbers-with-JavaScript.md        |    8 +-
 Waypoint-Add-a-Submit-Button-to-a-Form.md          |   14 +-
 Waypoint-Add-your-JavaScript-Slot-Machine-Slots.md |   20 +-
 Waypoint-Adjust-the-Margin-of-an-Element.md        |   16 +-
 Waypoint-Adjusting-the-Padding-of-an-Element.md    |   14 +-
 ...int-Apply-the-Default-Bootstrap-Button-Style.md |   46 +-
 ...t-Bring-your-JavaScript-Slot-Machine-to-Life.md |   20 +-
 Waypoint-Build-JavaScript-Objects.md               |   30 +-
 ...t-Call-out-Optional-Actions-with-Button-Info.md |    8 +-
 Waypoint-Center-Text-with-Bootstrap.md             |    8 +-
 ...nt-Change-the-CSS-of-an-Element-Using-jQuery.md |   26 +-
 Waypoint-Change-the-Color-of-Text.md               |    4 +-
 ...heck-Radio-Buttons-and-Checkboxes-by-Default.md |    4 +-
 ...eck-the-Length-Property-of-a-String-Variable.md |    8 +-
 Waypoint-Clone-an-Element-Using-jQuery.md          |    8 +-
 Waypoint-Comment-out-HTML.md                       |   28 +-
 Waypoint-Comment-your-JavaScript-Code.md           |   20 +-
 Waypoint-Concatenate-Strings-with-.concat.md       |    6 +-
 Waypoint-Condense-arrays-with-reduce.md            |   24 +-
 ...-Construct-JavaScript-Objects-with-Functions.md |   24 +-
 Waypoint-Create-Bootstrap-Wells.md                 |   52 +-
 Waypoint-Create-Decimal-Numbers-with-JavaScript.md |    4 +-
 ...oint-Create-a-Block-Element-Bootstrap-Button.md |    8 +-
 Waypoint-Create-a-Bootstrap-Button.md              |    8 +-
 Waypoint-Create-a-Bootstrap-Headline.md            |    4 +-
 Waypoint-Create-a-Bootstrap-Row.md                 |    4 +-
 Waypoint-Create-a-Bulleted-Unordered-List.md       |   26 +-
 ...eate-a-Class-to-Target-with-jQuery-Selectors.md |    8 +-
 Waypoint-Create-a-Custom-Heading.md                |   24 +-
 Waypoint-Create-a-Form-Element.md                  |    4 +-
 Waypoint-Create-a-JavaScript-Slot-Machine.md       |   16 +-
 Waypoint-Create-a-Set-of-Checkboxes.md             |    8 +-
 Waypoint-Create-a-Set-of-Radio-Buttons.md          |    8 +-
 Waypoint-Create-a-Text-Field.md                    |    4 +-
 Waypoint-Create-an-Ordered-List.md                 |   26 +-
 ...oint-Declare-JavaScript-Objects-as-Variables.md |   24 +-
 Waypoint-Declare-JavaScript-Variables.md           |    8 +-
 Waypoint-Declare-String-Variables.md               |    8 +-
 Waypoint-Delete-your-jQuery-Functions.md           |    4 +-
 Waypoint-Disable-an-Element-Using-jQuery.md        |   16 +-
 Waypoint-Ditch-Custom-CSS-for-Bootstrap.md         |    8 +-
 ...Divide-One-Number-by-Another-with-JavaScript.md |    4 +-
 ...oint-Fill-in-the-Blank-with-Placeholder-Text.md |   20 +-
 Waypoint-Filter-Arrays-with-filter.md              |   16 +-
 Waypoint-Find-Numbers-with-Regular-Expressions.md  |   12 +-
 ...nt-Find-White-Space-with-Regular-Expressions.md |   12 +-
 ...nt-Generate-Random-Fractions-with-JavaScript.md |    4 +-
 ...enerate-Random-Whole-Numbers-with-JavaScript.md |    8 +-
 ...Generate-Random-Whole-Numbers-within-a-Range.md |  108 +-
 Waypoint-Give-Each-Element-a-Unique-ID.md          |    4 +-
 ...int-Give-a-Background-Color-to-a-Div-Element.md |    4 +-
 ...-JavaScript-Slot-Machine-some-stylish-images.md |   12 +-
 Waypoint-Headline-with-the-h2-Element.md           |   10 +-
 ...-page-within-a-Bootstrap-Container-Fluid-Div.md |   16 +-
 Waypoint-Inform-with-the-Paragraph-Element.md      |   16 +-
 Waypoint-Inherit-Styles-from-the-Body-Element.md   |   24 +-
 ...t-Regular-Expression-Matches-with-JavaScript.md |    8 +-
 Waypoint-Iterate-over-Arrays-with-map.md           |   18 +-
 Waypoint-Iterate-with-JavaScript-For-Loops.md      |   44 +-
 Waypoint-Iterate-with-JavaScript-While-Loops.md    |   22 +-
 Waypoint-Join-Strings-with-.join.md                |    4 +-
 Waypoint-Label-Bootstrap-Buttons.md                |    4 +-
 Waypoint-Label-Bootstrap-Wells.md                  |    4 +-
 ...earn-how-Script-Tags-and-Document-Ready-Work.md |   24 +-
 ...up-Form-Elements-Responsively-with-Bootstrap.md |   18 +-
 ...-Link-to-External-Pages-with-Anchor-Elements.md |    4 +-
 ...nt-Make-Circular-Images-with-a-Border-Radius.md |   18 +-
 Waypoint-Make-Dead-Links-using-the-Hash-Symbol.md  |    4 +-
 Waypoint-Make-Images-Mobile-Responsive.md          |    4 +-
 ...ances-of-Objects-with-a-Constructor-Function.md |   28 +-
 Waypoint-Make-Object-Properties-Private.md         |   36 +-
 Waypoint-Manipulate-Arrays-With-pop().md           |   12 +-
 Waypoint-Manipulate-Arrays-With-push().md          |    8 +-
 Waypoint-Manipulate-Arrays-With-shift().md         |    4 +-
 Waypoint-Manipulate-Arrays-With-unshift().md       |    4 +-
 Waypoint-Manipulate-JavaScript-Objects.md          |   16 +-
 Waypoint-Modify-Array-Data-With-Indexes.md         |   18 +-
 Waypoint-Multiply-Two-Numbers-with-JavaScript.md   |    8 +-
 ...st-Many-Elements-within-a-Single-Div-Element.md |   44 +-
 Waypoint-Nest-one-Array-within-Another-Array.md    |    4 +-
 ...Override-All-Other-Styles-by-using-Important.md |    4 +-
 ...-Class-Declarations-by-Styling-ID-Attributes.md |   36 +-
 ...metic-Operations-on-Decimals-with-JavaScript.md |    8 +-
 Waypoint-Prioritize-One-Style-Over-Another.md      |   28 +-
 ...t-Remove-Classes-from-an-element-with-jQuery.md |    8 +-
 Waypoint-Remove-an-Element-Using-jQuery.md         |    4 +-
 Waypoint-Responsively-Style-Checkboxes.md          |    8 +-
 Waypoint-Responsively-Style-Radio-Buttons.md       |   36 +-
 Waypoint-Reverse-Arrays-with-reverse.md            |   12 +-
 Waypoint-Say-Hello-to-HTML-Elements.md             |   12 +-
 Waypoint-Set-the-ID-of-an-Element.md               |   12 +-
 ...t-Sift-through-Text-with-Regular-Expressions.md |   26 +-
 Waypoint-Size-your-Images.md                       |    4 +-
 Waypoint-Sort-Arrays-with-sort.md                  |   14 +-
 Waypoint-Specify-How-Fonts-Should-Degrade.md       |    4 +-
 Waypoint-Split-Strings-with-split.md               |    8 +-
 Waypoint-Split-your-Bootstrap-Row.md               |   24 +-
 ...lues-in-one-Variable-using-JavaScript-Arrays.md |   12 +-
 ...int-Style-Multiple-Elements-with-a-CSS-Class.md |   28 +-
 Waypoint-Style-Text-Inputs-as-Form-Controls.md     |    8 +-
 ...ract-One-Number-from-Another-with-JavaScript.md |    8 +-
 Waypoint-Target-Elements-by-Class-Using-jQuery.md  |    8 +-
 Waypoint-Target-Elements-by-ID-Using-jQuery.md     |    8 +-
 ...t-Target-Even-Numbered-Elements-Using-jQuery.md |   12 +-
 ...et-HTML-Elements-with-Selectors-Using-jQuery.md |   28 +-
 ...-a-Specific-Child-of-an-Element-Using-jQuery.md |   12 +-
 ...rget-the-Children-of-an-Element-Using-jQuery.md |   12 +-
 ...Target-the-Parent-of-an-Element-Using-jQuery.md |   16 +-
 ...-same-element-with-multiple-jQuery-Selectors.md |   30 +-
 ...int-Taste-the-Bootstrap-Button-Color-Rainbow.md |    8 +-
 Waypoint-Uncomment-HTML.md                         |    8 +-
 Waypoint-Understand-Boolean-Values.md              |    4 +-
 Waypoint-Use-Abbreviated-Hex-Code.md               |   20 +-
 ...tion-to-Find-the-First-Character-in-a-String.md |    8 +-
 ...ation-to-Find-the-Last-Character-in-a-String.md |   12 +-
 ...tation-to-Find-the-Nth-Character-in-a-String.md |   12 +-
 ...o-Find-the-Nth-to-Last-Character-in-a-String.md |    4 +-
 Waypoint-Use-CSS-Selectors-to-Style-Elements.md    |   12 +-
 ...Notation-to-Specify-the-Margin-of-an-Element.md |   18 +-
 ...otation-to-Specify-the-Padding-of-an-Element.md |   18 +-
 Waypoint-Use-Comments-to-Clarify-Code.md           |   58 +-
 ...se-Conditional-Logic-with-If-Else-Statements.md |   30 +-
 Waypoint-Use-HTML5-to-Require-a-Field.md           |   18 +-
 Waypoint-Use-Hex-Code-for-Specific-Colors.md       |    4 +-
 Waypoint-Use-Hex-Code-to-Color-Elements-Blue.md    |   16 +-
 Waypoint-Use-Hex-Code-to-Color-Elements-Green.md   |   16 +-
 Waypoint-Use-Hex-Code-to-Color-Elements-Red.md     |    4 +-
 Waypoint-Use-Hex-Code-to-Mix-Colors.md             |   16 +-
 Waypoint-Use-RGB-values-to-Color-Elements.md       |    8 +-
 ...nsive-Design-with-Bootstrap-Fluid-Containers.md |   12 +-
 Waypoint-Use-Spans-for-Inline-Elements.md          |    8 +-
 Waypoint-Use-a-CSS-Class-to-Style-an-Element.md    |    4 +-
 ...oint-Use-an-ID-Attribute-to-Style-an-Element.md |   12 +-
 ...nt-Use-appendTo-to-Move-Elements-with-jQuery.md |    8 +-
 Waypoint-Use-jQuery-to-Modify-the-Entire-Page.md   |    8 +-
 ...-Bootstrap-Grid-to-Put-Elements-Side-By-Side.md |   32 +-
 Waypoint-Use-the-Javascript-Console.md             |   12 +-
 Waypoint-Using-typeof.md                           |   24 +-
 Waypoint-Warn-your-Users-of-a-Dangerous-Action.md  |    8 +-
 ...int-Write-Reusable-JavaScript-with-Functions.md |   24 +-
 Web-Resources.md                                   |   22 +-
 What-exactly-Free-Code-Camp-does.md                |    6 +-
 What-pair-programming-is-and-why-it-is-special.md  |   22 +-
 What-the-main-advantages-of-Free-Code-Camp-are.md  |   20 +-
 What-the-style-guide-for-Bonfires-is.md            |   28 +-
 ...age-that-Free-Code-Camp-does-not-yet-support.md |   12 +-
 ...earn,-and-in-what-sequence-you-will-learn-it.md |   26 +-
 Why-You-Should-Try-Pair-Programming.md             |   46 +-
 ...amp-use-JavaScript-instead-of-Ruby-or-Python.md |   12 +-
 Why-you-need-Free-Code-Camp.md                     |   14 +-
 Wiki-Style-Guide.md                                |   34 +-
 World-Language-Chat-Rooms.md                       |   58 +-
 Write-and-Run-ES6-Code-in-Browser.md               |   40 +-
 Writing-great-git-commit-message.md                |   66 +-
 Zipline-Use-the-Twitchtv-JSON-API.md               |   36 +-
 _Footer.md                                         |   14 +-
 _Sidebar.md                                        |   78 +-
 bf-bouncer.md                                      |  154 +--
 bonfire-falsey-bouncer.md                          |  170 ++--
 bonfire-find-the-longest-word-in-a-string.md       |  100 +-
 bonfire-finders-keepers.md                         |  124 +--
 bonfire-inventory-update.md                        |  270 ++---
 bonfire-make-a-person.md                           |  136 +--
 bonfire-mutations.md                               |  122 +--
 bonfire-no-repeats-please.md                       |  220 ++--
 bonfire-pairwise.md                                |  146 +--
 bonfire-repeat-a-string-repeat-a-string.md         |  146 +--
 bonfire-roman-numeral-converter.md                 |  108 +-
 bonfire-slasher-flick.md                           |  126 +--
 bonfire-steamroller.md                             |  104 +-
 bonfire-sum-all-odd-fibonacci-numbers.md           |   92 +-
 bonfire-title-case-a-sentence.md                   |  192 ++--
 bonfire-truncate-a-string.md                       |  112 +--
 bot-announce.md                                    |   40 +-
 botdemo.md                                         |   48 +-
 botideas.md                                        |   12 +-
 botintro.md                                        |   66 +-
 botpreso.md                                        |   18 +-
 camperbot.md                                       |  130 +--
 chai-assert.md                                     |   26 +-
 chai-cheat.md                                      |  252 ++---
 chai.md                                            |   10 +-
 code-case.md                                       |   32 +-
 code-format.md                                     |   78 +-
 css-selectors.md                                   |   52 +-
 css.md                                             |    8 +-
 dau.md                                             |    6 +-
 debugging.md                                       |    6 +-
 demo-trim.md                                       |   26 +-
 emoji.md                                           |    4 +-
 example.md                                         |   48 +-
 format-@meet999.md                                 |   28 +-
 git-merge.md                                       |  142 +--
 git-rebase.md                                      |  140 +--
 global-variables.md                                |    8 +-
 good-code.md                                       |   58 +-
 how-to-post-code.md                                |    6 +-
 html-elements.md                                   |   12 +-
 isLoggedInAsync().md                               |   32 +-
 jQuery.md                                          |   14 +-
 js-Array-prototype-filter.md                       |  116 +--
 js-Array-prototype-indexOf.md                      |   82 +-
 js-Array-prototype-map.md                          |  128 +--
 js-Array-prototype-pop.md                          |   72 +-
 js-Array-prototype-push.md                         |   72 +-
 js-Array-prototype-shift.md                        |   72 +-
 js-Array-prototype-slice.md                        |   76 +-
 js-Array-prototype-some.md                         |  162 +--
 js-Array-prototype-toString.md                     |   42 +-
 js-Boolean.md                                      |   76 +-
 js-String-prototype-split.md                       |   86 +-
 js-String-prototype-toLowerCase.md                 |   36 +-
 js-String-prototype-toUpperCase.md                 |   36 +-
 js-arguments.md                                    |  122 +--
 js-closures.md                                     |   30 +-
 js-falsy.md                                        |    6 +-
 js-for-in-loop.md                                  |  114 +--
 js-for-loop.md                                     |   24 +-
 js-for-of-loop.md                                  |   84 +-
 js-immutable.md                                    |   34 +-
 js-loops.md                                        |   34 +-
 js-scope.md                                        |   10 +-
 js-ternary.md                                      |   24 +-
 js-truthy.md                                       |    8 +-
 js-undefined.md                                    |    4 +-
 jsonp.md                                           |    6 +-
 latex.md                                           |   74 +-
 ...e-passing-can-someone-help-me-find-the-error.md |   60 +-
 ooda.md                                            |   10 +-
 topic.md                                           |   10 +-
 triphop.md                                         |    4 +-
 update.md                                          |    4 +-
 video-demo.md                                      |    6 +-
 video.md                                           |    8 +-
 wat.md                                             |    6 +-
 wiki-js-template.md                                |   48 +-
 400 files changed, 9702 insertions(+), 9708 deletions(-)
 delete mode 100644 Stuck-getting-started-on-Zipline:-Build-a-personal-profile..md

diff --git a/10-Steps-To-Plan-Better-So-You-Can-Write-Less-Code.md b/10-Steps-To-Plan-Better-So-You-Can-Write-Less-Code.md
index 07a9f69..57220fd 100644
--- a/10-Steps-To-Plan-Better-So-You-Can-Write-Less-Code.md
+++ b/10-Steps-To-Plan-Better-So-You-Can-Write-Less-Code.md
@@ -1,116 +1,116 @@
-##Learn how to plan your future project!
-
-*Blog post written by BiancaMihai - [GitHub](https://github.com/biancamihai) / [Twitter](https://twitter.com/intent/user?screen_name=bubuslubu)*
-
-An ounce of preparation is worth a pound of cure. That's true in medicine, and that's definitely true in software development.
-
-Here's a structured 10-step workflow that will guide you through the app planning process, with the goal of saving you from writing a lot of unnecessary code.
-
-Together, we'll plan out a simple "To-do" single-page web app. We'll also plan for an API backend for a future mobile app.
-
-###1) Create our Trello board
-
-[Trello](https://trello.com/) is a fun, free way to break your planning and development process into small tasks that can be tracked.
-
-![Image of Trello board](https://lh3.googleusercontent.com/EI4AQ4NINm3B2DHR_YIS29JyKVa5dTPiT3RtITylmndFlpshTHepsKuO8_1KQNfdPDSBjslDReHCuPFeH1GNrDtgOwTyq6ZtGf3DFBmq1AsAhPHKt_0pLXQLf0o4ZbDuKVj4-Bo)
-
-
-[Here's what our Trello board will eventually look like](https://trello.com/b/O9MZcYyY/todo-app). I prefer to split my tasks into 3 columns (depending on the complexity of the project):
-
-* To Do - what is left to do
-* In progress - tasks that people are currently working on
-* Done - tasks that are done and ready for testing
-
-###2) Write user stories
-
-Here are some example user stories. These will guide how we think about our app's features and functionality. Note that they all follow a similar structure: as a <person> I can <do something>. 
-
-* as a logged-in user I can see the list of my to-do's.
-* as a logged-in user I can add a new to-do.
-* as a logged-in user I can delete a to-do (only my to-do's - not other users').
-* as a logged-in user I can complete a to-do (only my to-do's - not other users').
-* as an anonymous user, I can register for a new account, recover my password, or log in to the app with an existing account.
-
-###3) Create our use case model
-
-Our use case model will help us visualize our user stories so we can better understand how to implement them.
-
-![Anonymous user case diagram] (https://lh5.googleusercontent.com/2v6iIMbCrLSKVfqttEToum7OA3YGQCBKWUHcSCB1KEbEcijXxQtKJKY6fhLXeecJiO27P4icOuPlkVc9_uNXolzlzNXOo_TPh09GZsAqRH-JISqPrpx0PZdtbHOr0RIuQUbTbaw)
-![Authenticated user case diagram] (https://lh6.googleusercontent.com/3V6dVvAcyjqFkaOukimucYOX0CfwBBYNN9SvjmnVy40Pdhs4Wtrr34i3E-9pbV7tFsp4jHm77IFQvFupjq6OWyxqEgCzcQ995Ayh52Msczu6TfwKeNhL9PYHyxSgmPYA1TR6l6Q)
-
-###4) Create our activity diagram
-
-Our activity diagram will show the different paths our users can take through our app.
-
-![Activity diagram picture](https://lh6.googleusercontent.com/jAQL4myqWOPA3gk2iTpGyAQBrO6p1GlPe8BQQ1Se6a-Di40X3Zw1p0wfJewZUL-YyDmedYzX5Lxvo2GW2Qnr6I-6kuKe1sDb9_5F_n46cKoawWReWW_ZoZCIJO6Semc4fvsiuHc)
-
-A user accesses our to-do application. 
-* If the user is not logged in she will see our login page. 
-* If she already has an account, she can log in.
-* If she has an account, but she forgot her password, she can recover her password.
-* If she doesn't have an account, she can create one.
-* Both "create an account" and "recover my password" will require email validation. A user can log in to our application only after she has confirmed her email address. 
-* If she is logged in, she will see her to-do list (this can be empty if she hasn't added any to-dos yet). 
-* A logged in user:
-  * is able to see her tasks list
-  * is able to mark a task from her list as completed
-  * is able to search within her task list
-  * is able to delete a task from her list
-  * can logout.
-* The user can exit the application at any time.
-
-###5) Create our mockups
-
-Our mockups show what our app should look like. It's much faster to iterate on a mockup than it is to do so on working code.
-
-![Mockup picture](https://lh3.googleusercontent.com/GBFhmBkfr-xM5YSXlR0Fm9y8b24ivdRlUtRWQOHJ8skNxEgjTkAef0e5nZ-CcHKNUq2p4V4hgDuAm9LSEuvbovlVborH1ZioAUXVlEblWZ4hN_d2tGEpxhfTkKH9os2JS1pab4w)
-
-###6) Choose the right technologies for our project
-
-Because this is a single page app, we'll rely heavily - or in this case exclusively - on JavaScript. Let's use one of the most popular JavaScript stacks: the MEAN stack. One big benefit of the MEAN stack is that all of its components are free and open-source. There are also tons of resources available for learning the MEAN stack, and for debugging it when you inevitably encounter errors. 
-
-You can have a [MEAN stack development environment](http://www.freecodecamp.com/challenges/waypoint-get-set-for-basejumps) up and running in the cloud in less than an hour, for free.
-
-Here are the components we'll use:
-1. [MongoDB](http://mongodb.org/) for our database
-2. [Node.js](http://nodejs.org/) and [Express.js](http://expressjs.com/) for implementing our API
-3. [AngularJS](http://angularjs.org/), along with HTML and CSS (and Bootstrap) for our client-side application
-4. [Mongoose](http://mongoosejs.com/) to connect our application to MongoDB
-
-###7) Design our database schema
-
-It's worth the effort to design a database schema, even for our simple application.
-
-We'll have two collections: our "Users" collection will house our user data, and our "ToDo" collection will house our tasks that need to be done. One user can have zero, one, or many tasks in  her to-do list, so we will have a one-to-many (1:m) relationship between our two collections.
-
-![Database schema diagram](https://lh6.googleusercontent.com/5uSb_xnSSc5CWXJD0yyUGVJsL92RRZl3Bex_3wjuzl5Xr69Ks0j3od-yFju24SAd5wWMBNy9uqBrvOzdrUWluOkbcr4H5zFg-ZemJX3ZRWS12D42OowuvWnxA7wWIGrhhzaQ0aw)
-
-###8) Define our use cases
-
-1. What happens to the to-dos related to a user that deletes her account? When the user deletes her account the to-dos related to that user should also be deleted. 
-2. No to-do can be added without being attached to a confirmed user.
-3. A to-do can only be deleted by its owner.
-4. No user can be added with an empty username or password.
-5. No to-do can be added with an empty task.
-
-Things to keep in mind:
-
-1. Use the Mongoose middleware to remove dependent documents like to-dos when a user deletes her account.
-2. Use Mongoose validation rules on models to prevent empty fields from being added to our database.
-
-###9) Design and test our API
-
-I used a free product called Apiary [to document our API](http://docs.fcctodoapp.apiary.io/). 
-
-Here's the syntax I used to [create this simple BluePrint](https://jsapi.apiary.io/apis/fcctodoapp.apib). 
-
-I recommend you create an account and start playing with it. If you link your [GitHub](http://github.com/) account with Apiary, you can ensure your documentation always stays up to date. You'll also be able to test your data visually without the need for actually hitting your API endpoints. If you prefer to test your API from the command line, [here's an example of how to do this](http://docs.agendor.apiary.io/). 
-
-
-Later, once you've implemented your API with Node.js and Express.js, you'll just need to set your URL in Apiary. Then you can start testing your calls. Our current host url (http://fcctodoapp.apiblueprint.org/) will be replaced by your API's URL. 
-
-![App demo picture](https://lh6.googleusercontent.com/hU3ilG_y9FqtL_zajQ_KOjWy8Qx590Go8nkNvA1j0oR50YJTpjJhL1lAPgjyeLTAS06tq6V62EcJrLQyT_TR2BK49DYiX6kksU6s9cqJDvvaS6jvepIM6uiO4JMbXuu-oXhdsas)
-
-###10) Start writing code!
-
+##Learn how to plan your future project!
+
+*Blog post written by BiancaMihai - [GitHub](https://github.com/biancamihai) / [Twitter](https://twitter.com/intent/user?screen_name=bubuslubu)*
+
+An ounce of preparation is worth a pound of cure. That's true in medicine, and that's definitely true in software development.
+
+Here's a structured 10-step workflow that will guide you through the app planning process, with the goal of saving you from writing a lot of unnecessary code.
+
+Together, we'll plan out a simple "To-do" single-page web app. We'll also plan for an API backend for a future mobile app.
+
+###1) Create our Trello board
+
+[Trello](https://trello.com/) is a fun, free way to break your planning and development process into small tasks that can be tracked.
+
+![Image of Trello board](https://lh3.googleusercontent.com/EI4AQ4NINm3B2DHR_YIS29JyKVa5dTPiT3RtITylmndFlpshTHepsKuO8_1KQNfdPDSBjslDReHCuPFeH1GNrDtgOwTyq6ZtGf3DFBmq1AsAhPHKt_0pLXQLf0o4ZbDuKVj4-Bo)
+
+
+[Here's what our Trello board will eventually look like](https://trello.com/b/O9MZcYyY/todo-app). I prefer to split my tasks into 3 columns (depending on the complexity of the project):
+
+* To Do - what is left to do
+* In progress - tasks that people are currently working on
+* Done - tasks that are done and ready for testing
+
+###2) Write user stories
+
+Here are some example user stories. These will guide how we think about our app's features and functionality. Note that they all follow a similar structure: as a <person> I can <do something>. 
+
+* as a logged-in user I can see the list of my to-do's.
+* as a logged-in user I can add a new to-do.
+* as a logged-in user I can delete a to-do (only my to-do's - not other users').
+* as a logged-in user I can complete a to-do (only my to-do's - not other users').
+* as an anonymous user, I can register for a new account, recover my password, or log in to the app with an existing account.
+
+###3) Create our use case model
+
+Our use case model will help us visualize our user stories so we can better understand how to implement them.
+
+![Anonymous user case diagram] (https://lh5.googleusercontent.com/2v6iIMbCrLSKVfqttEToum7OA3YGQCBKWUHcSCB1KEbEcijXxQtKJKY6fhLXeecJiO27P4icOuPlkVc9_uNXolzlzNXOo_TPh09GZsAqRH-JISqPrpx0PZdtbHOr0RIuQUbTbaw)
+![Authenticated user case diagram] (https://lh6.googleusercontent.com/3V6dVvAcyjqFkaOukimucYOX0CfwBBYNN9SvjmnVy40Pdhs4Wtrr34i3E-9pbV7tFsp4jHm77IFQvFupjq6OWyxqEgCzcQ995Ayh52Msczu6TfwKeNhL9PYHyxSgmPYA1TR6l6Q)
+
+###4) Create our activity diagram
+
+Our activity diagram will show the different paths our users can take through our app.
+
+![Activity diagram picture](https://lh6.googleusercontent.com/jAQL4myqWOPA3gk2iTpGyAQBrO6p1GlPe8BQQ1Se6a-Di40X3Zw1p0wfJewZUL-YyDmedYzX5Lxvo2GW2Qnr6I-6kuKe1sDb9_5F_n46cKoawWReWW_ZoZCIJO6Semc4fvsiuHc)
+
+A user accesses our to-do application. 
+* If the user is not logged in she will see our login page. 
+* If she already has an account, she can log in.
+* If she has an account, but she forgot her password, she can recover her password.
+* If she doesn't have an account, she can create one.
+* Both "create an account" and "recover my password" will require email validation. A user can log in to our application only after she has confirmed her email address. 
+* If she is logged in, she will see her to-do list (this can be empty if she hasn't added any to-dos yet). 
+* A logged in user:
+  * is able to see her tasks list
+  * is able to mark a task from her list as completed
+  * is able to search within her task list
+  * is able to delete a task from her list
+  * can logout.
+* The user can exit the application at any time.
+
+###5) Create our mockups
+
+Our mockups show what our app should look like. It's much faster to iterate on a mockup than it is to do so on working code.
+
+![Mockup picture](https://lh3.googleusercontent.com/GBFhmBkfr-xM5YSXlR0Fm9y8b24ivdRlUtRWQOHJ8skNxEgjTkAef0e5nZ-CcHKNUq2p4V4hgDuAm9LSEuvbovlVborH1ZioAUXVlEblWZ4hN_d2tGEpxhfTkKH9os2JS1pab4w)
+
+###6) Choose the right technologies for our project
+
+Because this is a single page app, we'll rely heavily - or in this case exclusively - on JavaScript. Let's use one of the most popular JavaScript stacks: the MEAN stack. One big benefit of the MEAN stack is that all of its components are free and open-source. There are also tons of resources available for learning the MEAN stack, and for debugging it when you inevitably encounter errors. 
+
+You can have a [MEAN stack development environment](http://www.freecodecamp.com/challenges/waypoint-get-set-for-basejumps) up and running in the cloud in less than an hour, for free.
+
+Here are the components we'll use:
+1. [MongoDB](http://mongodb.org/) for our database
+2. [Node.js](http://nodejs.org/) and [Express.js](http://expressjs.com/) for implementing our API
+3. [AngularJS](http://angularjs.org/), along with HTML and CSS (and Bootstrap) for our client-side application
+4. [Mongoose](http://mongoosejs.com/) to connect our application to MongoDB
+
+###7) Design our database schema
+
+It's worth the effort to design a database schema, even for our simple application.
+
+We'll have two collections: our "Users" collection will house our user data, and our "ToDo" collection will house our tasks that need to be done. One user can have zero, one, or many tasks in  her to-do list, so we will have a one-to-many (1:m) relationship between our two collections.
+
+![Database schema diagram](https://lh6.googleusercontent.com/5uSb_xnSSc5CWXJD0yyUGVJsL92RRZl3Bex_3wjuzl5Xr69Ks0j3od-yFju24SAd5wWMBNy9uqBrvOzdrUWluOkbcr4H5zFg-ZemJX3ZRWS12D42OowuvWnxA7wWIGrhhzaQ0aw)
+
+###8) Define our use cases
+
+1. What happens to the to-dos related to a user that deletes her account? When the user deletes her account the to-dos related to that user should also be deleted. 
+2. No to-do can be added without being attached to a confirmed user.
+3. A to-do can only be deleted by its owner.
+4. No user can be added with an empty username or password.
+5. No to-do can be added with an empty task.
+
+Things to keep in mind:
+
+1. Use the Mongoose middleware to remove dependent documents like to-dos when a user deletes her account.
+2. Use Mongoose validation rules on models to prevent empty fields from being added to our database.
+
+###9) Design and test our API
+
+I used a free product called Apiary [to document our API](http://docs.fcctodoapp.apiary.io/). 
+
+Here's the syntax I used to [create this simple BluePrint](https://jsapi.apiary.io/apis/fcctodoapp.apib). 
+
+I recommend you create an account and start playing with it. If you link your [GitHub](http://github.com/) account with Apiary, you can ensure your documentation always stays up to date. You'll also be able to test your data visually without the need for actually hitting your API endpoints. If you prefer to test your API from the command line, [here's an example of how to do this](http://docs.agendor.apiary.io/). 
+
+
+Later, once you've implemented your API with Node.js and Express.js, you'll just need to set your URL in Apiary. Then you can start testing your calls. Our current host url (http://fcctodoapp.apiblueprint.org/) will be replaced by your API's URL. 
+
+![App demo picture](https://lh6.googleusercontent.com/hU3ilG_y9FqtL_zajQ_KOjWy8Qx590Go8nkNvA1j0oR50YJTpjJhL1lAPgjyeLTAS06tq6V62EcJrLQyT_TR2BK49DYiX6kksU6s9cqJDvvaS6jvepIM6uiO4JMbXuu-oXhdsas)
+
+###10) Start writing code!
+
 This is the fun part, and it will take up most of your project's time. If you need help with this, join us and learn to code.
\ No newline at end of file
diff --git a/5-Steps-to-organizing-a-successful-Campsite-event..md b/5-Steps-to-organizing-a-successful-Campsite-event..md
index 13def03..a0c3b89 100644
--- a/5-Steps-to-organizing-a-successful-Campsite-event..md
+++ b/5-Steps-to-organizing-a-successful-Campsite-event..md
@@ -1,18 +1,18 @@
-# In-person group programming sessions and events are fun! 
-
-## This Wiki will help you with organizing a successful Campsite event.
-
-### With a little planning and communication having a successful Campsite event can be easy! Here are some steps to help you in doing this.
-###  
-
-* Determine the topic for the event (code and coffee, hack session, invite campers to another organization's event).
-
-* Find a suitable location. Campsite events should always take place in a public space (library, cafe, hackerspace).
-
-* Create an event on your Campsite's Facebook page for the event, and link to it on your Campsite Facebook Group page.
-
-* Follow-up with reminder posts for the event 1 week prior to the event and then again the day before the event.
-
-* On the day of the event arrive early, get setup, greet members, and kick the event off. Don't forget to thank everyone afterwards and extend invites to future meetups.
-
-**Try to take some pictures and post them on your Campsite's Facebook group page.**
+# In-person group programming sessions and events are fun! 
+
+## This Wiki will help you with organizing a successful Campsite event.
+
+### With a little planning and communication having a successful Campsite event can be easy! Here are some steps to help you in doing this.
+###  
+
+* Determine the topic for the event (code and coffee, hack session, invite campers to another organization's event).
+
+* Find a suitable location. Campsite events should always take place in a public space (library, cafe, hackerspace).
+
+* Create an event on your Campsite's Facebook page for the event, and link to it on your Campsite Facebook Group page.
+
+* Follow-up with reminder posts for the event 1 week prior to the event and then again the day before the event.
+
+* On the day of the event arrive early, get setup, greet members, and kick the event off. Don't forget to thank everyone afterwards and extend invites to future meetups.
+
+**Try to take some pictures and post them on your Campsite's Facebook group page.**
diff --git a/Academic-Honesty-Policy.md b/Academic-Honesty-Policy.md
index b8e6a3f..2d809fa 100644
--- a/Academic-Honesty-Policy.md
+++ b/Academic-Honesty-Policy.md
@@ -1,9 +1,9 @@
-Before we issue our verified certificate to a camper, he or she must accept our Academic Honesty Pledge, which reads:
-
-**I understand that plagiarism means copying someone else's work and presenting the work as if it were my own, without clearly attributing the original author.**
-
-**I understand that plagiarism is an act of intellectual dishonesty, and that people usually get kicked out of university or fired from their jobs if they get caught plagiarizing.**
-
-**Aside from using open source libraries such as jQuery and Bootstrap, and short snippets of code which are clearly attributed to their original author, 100% of the code in my Bonfires, Basejumps and Ziplines was written by me or along with another camper with whom I was pair programming in real time.**
-
+Before we issue our verified certificate to a camper, he or she must accept our Academic Honesty Pledge, which reads:
+
+**I understand that plagiarism means copying someone else's work and presenting the work as if it were my own, without clearly attributing the original author.**
+
+**I understand that plagiarism is an act of intellectual dishonesty, and that people usually get kicked out of university or fired from their jobs if they get caught plagiarizing.**
+
+**Aside from using open source libraries such as jQuery and Bootstrap, and short snippets of code which are clearly attributed to their original author, 100% of the code in my Bonfires, Basejumps and Ziplines was written by me or along with another camper with whom I was pair programming in real time.**
+
 **I pledge that I did not plagiarize any of my Free Code Camp work, and that I am OK with any random auditing Free Code Camp may do to confirm this.**
\ No newline at end of file
diff --git a/Accessing-the-database-from-your-frontend.md b/Accessing-the-database-from-your-frontend.md
index fe66434..b2de340 100644
--- a/Accessing-the-database-from-your-frontend.md
+++ b/Accessing-the-database-from-your-frontend.md
@@ -1,13 +1,13 @@
-You must have noticed in **main.controller.js** how *things* were retrieved from the database and displayed:
-  
-~~~javascript
- $http.get('/api/things').success(function(awesomeThings){  
-	$scope.awesomeThings = awesomeThings;  
-});
-
-~~~  
-
-What this does is call the api with a “get” request, which is then routed by **/server/api/thing/index.js** to the *exports.index* function in **thing.controller.js**. You’ll also notice in **main.controller.js** that there are included examples of *$http.post* and *$http.delete* functions too! How nice!  
-
-[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Fixing-exports.update)
+You must have noticed in **main.controller.js** how *things* were retrieved from the database and displayed:
+  
+~~~javascript
+ $http.get('/api/things').success(function(awesomeThings){  
+	$scope.awesomeThings = awesomeThings;  
+});
+
+~~~  
+
+What this does is call the api with a “get” request, which is then routed by **/server/api/thing/index.js** to the *exports.index* function in **thing.controller.js**. You’ll also notice in **main.controller.js** that there are included examples of *$http.post* and *$http.delete* functions too! How nice!  
+
+[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Fixing-exports.update)
 [NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Seed-data)
\ No newline at end of file
diff --git a/Adding-Environment-Variables.md b/Adding-Environment-Variables.md
index d3de1ed..e92c17c 100644
--- a/Adding-Environment-Variables.md
+++ b/Adding-Environment-Variables.md
@@ -1,13 +1,13 @@
-# In Windows
-
-### Via GUI
-
-1. Download [Varpanel](http://implbits.com/products/varpanel/).
-2. Open Varpanel.
-3. In PATH variable, add the relevant path (for example).
-
-![](http://i.imgur.com/RqgGcf5.gif)
-
-## Via Command Line
-
+# In Windows
+
+### Via GUI
+
+1. Download [Varpanel](http://implbits.com/products/varpanel/).
+2. Open Varpanel.
+3. In PATH variable, add the relevant path (for example).
+
+![](http://i.imgur.com/RqgGcf5.gif)
+
+## Via Command Line
+
 Refer to [this answer](http://superuser.com/a/284351/275797) on Super User.
\ No newline at end of file
diff --git a/Angular-Resources.md b/Angular-Resources.md
index b7e7cbf..8cf092c 100644
--- a/Angular-Resources.md
+++ b/Angular-Resources.md
@@ -1,14 +1,14 @@
-A collection of helpful Angular resources
-
-### General Pages
-* [Angular JS](https://angularjs.org/) - The Angular JS Homepage
-* [Angular Style Guide](https://github.com/johnpapa/angular-styleguide) - Detailed best practices for Angular Development
-
-### Specific-topic Pages
-* [Directives](http://www.sitepoint.com/practical-guide-angularjs-directives/) - Excellent guide going into detail on Angular Directives (Part 1)
-* [Directives](http://www.sitepoint.com/practical-guide-angularjs-directives-part-two/) - Excellent guide going into detail on Angular Directives (Part 2)
-
-### Videos
-* [Routing in Angular JS](https://www.youtube.com/watch?v=5uhZCc0j9RY) - Client Side Routing in 15 minutes
-* [Angular ToDo App](https://www.youtube.com/watch?v=WuiHuZq_cg4) - An Angular ToDo app in 12 minutes
+A collection of helpful Angular resources
+
+### General Pages
+* [Angular JS](https://angularjs.org/) - The Angular JS Homepage
+* [Angular Style Guide](https://github.com/johnpapa/angular-styleguide) - Detailed best practices for Angular Development
+
+### Specific-topic Pages
+* [Directives](http://www.sitepoint.com/practical-guide-angularjs-directives/) - Excellent guide going into detail on Angular Directives (Part 1)
+* [Directives](http://www.sitepoint.com/practical-guide-angularjs-directives-part-two/) - Excellent guide going into detail on Angular Directives (Part 2)
+
+### Videos
+* [Routing in Angular JS](https://www.youtube.com/watch?v=5uhZCc0j9RY) - Client Side Routing in 15 minutes
+* [Angular ToDo App](https://www.youtube.com/watch?v=WuiHuZq_cg4) - An Angular ToDo app in 12 minutes
 * [Shaping Up with Angular.JS](https://www.codeschool.com/courses/shaping-up-with-angular-js) - A free Angular.JS tutorial
\ No newline at end of file
diff --git a/Arithmetic-Operators.md b/Arithmetic-Operators.md
index 0e745e5..23b9753 100644
--- a/Arithmetic-Operators.md
+++ b/Arithmetic-Operators.md
@@ -1,85 +1,85 @@
-JavaScript provides the user with five arithmetic operators: `+`, `-`, `*`, `/` and `%`. The operators are for addition, subtraction, multiplication, division and remainder respectively.
-
-### Addition
-**Syntax**
-
-`a + b`
-
-**Usage**
-```js
-2 + 3          // returns 5
-true + 2       // interprets true as 1 and returns 3
-false + 5      // interprets false as 0 and returns 5
-true + "bar"   // concatenates the boolean value and returns "truebar"
-5 + "foo"      // concatenates the string and the number and returns "5foo"
-"foo" + "bar"  // concatenates the strings and returns "foobar"
-```
-
-*Hint:* There is a handy [increment](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Increment_()) operator that is a great shortcut when you're adding numbers by 1.
-
-### Subtraction
-**Syntax** 
-
-`a - b`
-
-**Usage**
-```js
-2 - 3      // returns -1
-3 - 2      // returns 1
-false - 5  // interprets false as 0 and returns -5
-true + 3   // interprets true as 1 and returns 4
-5 + "foo"  // returns NaN (Not a Number)
-```
-
-*Hint:* There is a handy [decrement](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Decrement_(--)) operator that is a great shortcut when you're subtracting numbers by 1.
-
-### Multiplication
-**Syntax** 
-
-`a * b`
-
-**Usage**
-```js
-2 * 3                // returns 6
-3 * -2               // returns -6
-false * 5            // interprets false as 0 and returns 0
-true * 3             // interprets true as 1 and returns 3
-5 * "foo"            // returns NaN (Not a Number)
-Infinity * 0         // returns NaN
-Infinity * Infinity  // returns Infinity
-```
-
-### Division
-**Syntax**
-
-`a / b`
-
-**Usage**
-```js
-3 / 2                // returns 1.5
-3.0 / 2/0            // returns 1.5
-3 / 0                // returns Infinity
-3.0 / 0.0            // returns Infinity
--3 / 0               // returns -Infinity
-false / 5            // interprets false as 0 and returns 0
-true / 2             // interprets true a 1 and returns 0.5
-5 + "foo"            // returns NaN (Not a Number)
-Infinity / Infinity  // returns NaN
-```
-
-### Remainder
-**Syntax**
-
-`a % b`
-
-**Usage**
-```js
-3 % 2          // returns 1
-true % 5       // interprets true as 1 and returns 1
-false % 4      // interprets false as 0 and returns 0
-3 % "bar"      // returns NaN
-```
-
-*!Important!* As you can see, you **cannot** perform any sort of operations on `Infinity`.
-
+JavaScript provides the user with five arithmetic operators: `+`, `-`, `*`, `/` and `%`. The operators are for addition, subtraction, multiplication, division and remainder respectively.
+
+### Addition
+**Syntax**
+
+`a + b`
+
+**Usage**
+```js
+2 + 3          // returns 5
+true + 2       // interprets true as 1 and returns 3
+false + 5      // interprets false as 0 and returns 5
+true + "bar"   // concatenates the boolean value and returns "truebar"
+5 + "foo"      // concatenates the string and the number and returns "5foo"
+"foo" + "bar"  // concatenates the strings and returns "foobar"
+```
+
+*Hint:* There is a handy [increment](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Increment_()) operator that is a great shortcut when you're adding numbers by 1.
+
+### Subtraction
+**Syntax** 
+
+`a - b`
+
+**Usage**
+```js
+2 - 3      // returns -1
+3 - 2      // returns 1
+false - 5  // interprets false as 0 and returns -5
+true + 3   // interprets true as 1 and returns 4
+5 + "foo"  // returns NaN (Not a Number)
+```
+
+*Hint:* There is a handy [decrement](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Decrement_(--)) operator that is a great shortcut when you're subtracting numbers by 1.
+
+### Multiplication
+**Syntax** 
+
+`a * b`
+
+**Usage**
+```js
+2 * 3                // returns 6
+3 * -2               // returns -6
+false * 5            // interprets false as 0 and returns 0
+true * 3             // interprets true as 1 and returns 3
+5 * "foo"            // returns NaN (Not a Number)
+Infinity * 0         // returns NaN
+Infinity * Infinity  // returns Infinity
+```
+
+### Division
+**Syntax**
+
+`a / b`
+
+**Usage**
+```js
+3 / 2                // returns 1.5
+3.0 / 2/0            // returns 1.5
+3 / 0                // returns Infinity
+3.0 / 0.0            // returns Infinity
+-3 / 0               // returns -Infinity
+false / 5            // interprets false as 0 and returns 0
+true / 2             // interprets true a 1 and returns 0.5
+5 + "foo"            // returns NaN (Not a Number)
+Infinity / Infinity  // returns NaN
+```
+
+### Remainder
+**Syntax**
+
+`a % b`
+
+**Usage**
+```js
+3 % 2          // returns 1
+true % 5       // interprets true as 1 and returns 1
+false % 4      // interprets false as 0 and returns 0
+3 % "bar"      // returns NaN
+```
+
+*!Important!* As you can see, you **cannot** perform any sort of operations on `Infinity`.
+
 Source: The amazing [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators).
\ No newline at end of file
diff --git a/August-2015-Improvements.md b/August-2015-Improvements.md
index 9d3e962..8164123 100644
--- a/August-2015-Improvements.md
+++ b/August-2015-Improvements.md
@@ -1,24 +1,24 @@
-## Sunday's Improvements
-* replaced our getting-started videos with a simple 10-minute process (using GIFs instead of videos)
-* doubled the number of our HTML5 and Bootstrap challenges
-* replaced Codecademy's JavaScript and jQuery challenges with our own challenges
-* added our own Object-oriented Programming and Functional Programming challenges
-* added two new Zipline front end challenges (Personal Portfolio and Simon game), and moved our Ziplines to much earlier in our curriculum
-* completely replaced our Field Guide with a searchable, and easily-editable open-source wiki
-* made it so your Bonfire code is stored in your browser, so if you leave the page, your code will be there when you come back
-* simplified our portfolio pages. You can now click a single button to mirror your Free Code Camp profile with your GitHub profile. Bonfire solutions are no longer shown here, but they'll eventually be accessible through our API.
-* fixed some issues with Brownie Points and Streaks
-* improved our Camper News page by removing the (mostly unused) comments and adding one-click upvoting
-* added a Creative Commons license to literally all of our images and text
-* thanks to Loopback, everything is now an API, and we will soon publish cool ways to interact with Free Code Camp's (non-sensitive) data
-
-## FAQ
-
-### The challenge I was most recently doing disappeared.
-You can just keep going. If you have time to go back and try our new challenges, they should be a quick review for you. Otherwise, keep moving forward.
-
-### Why are you deploying all these improvements at once?
-We've been working on some of the features for months on our Staging branch. Most of them were held up by a single task: our transition to [Loopback](http://loopback.io/). @BerkeleyTrue started working on this back in March. 
-
-### Was deploying everything at once necessary?
-Probably not. Going forward, we will deploy new code several times a day (as we did prior to the Loopback feature). We plan to start using a [continuous integration](https://en.wikipedia.org/wiki/Continuous_integration) and other agile best practices as we reduce our [technical debt](https://en.wikipedia.org/wiki/Technical_debt).
+## Sunday's Improvements
+* replaced our getting-started videos with a simple 10-minute process (using GIFs instead of videos)
+* doubled the number of our HTML5 and Bootstrap challenges
+* replaced Codecademy's JavaScript and jQuery challenges with our own challenges
+* added our own Object-oriented Programming and Functional Programming challenges
+* added two new Zipline front end challenges (Personal Portfolio and Simon game), and moved our Ziplines to much earlier in our curriculum
+* completely replaced our Field Guide with a searchable, and easily-editable open-source wiki
+* made it so your Bonfire code is stored in your browser, so if you leave the page, your code will be there when you come back
+* simplified our portfolio pages. You can now click a single button to mirror your Free Code Camp profile with your GitHub profile. Bonfire solutions are no longer shown here, but they'll eventually be accessible through our API.
+* fixed some issues with Brownie Points and Streaks
+* improved our Camper News page by removing the (mostly unused) comments and adding one-click upvoting
+* added a Creative Commons license to literally all of our images and text
+* thanks to Loopback, everything is now an API, and we will soon publish cool ways to interact with Free Code Camp's (non-sensitive) data
+
+## FAQ
+
+### The challenge I was most recently doing disappeared.
+You can just keep going. If you have time to go back and try our new challenges, they should be a quick review for you. Otherwise, keep moving forward.
+
+### Why are you deploying all these improvements at once?
+We've been working on some of the features for months on our Staging branch. Most of them were held up by a single task: our transition to [Loopback](http://loopback.io/). @BerkeleyTrue started working on this back in March. 
+
+### Was deploying everything at once necessary?
+Probably not. Going forward, we will deploy new code several times a day (as we did prior to the Loopback feature). We plan to start using a [continuous integration](https://en.wikipedia.org/wiki/Continuous_integration) and other agile best practices as we reduce our [technical debt](https://en.wikipedia.org/wiki/Technical_debt).
diff --git a/August-Live-Stream.md b/August-Live-Stream.md
index a103406..f834849 100644
--- a/August-Live-Stream.md
+++ b/August-Live-Stream.md
@@ -1,20 +1,20 @@
-### Free Code Camp's [August Live Stream] (https://youtu.be/UhoxoYrJ6Qs) was the largest yet.
-
-## The agenda included:
-
-- Opening words from Michael
-- New front end challenges [3:00] (https://youtu.be/UhoxoYrJ6Qs?t=3m)
-- Newly configured full-stack challenges
-- New Nonprofit Projects [12:32] (https://youtu.be/UhoxoYrJ6Qs?t=12m32s)
-- Wiki [22:49] (https://youtu.be/UhoxoYrJ6Qs?t=22m49s)
-- New chat rooms [29:40] (https://youtu.be/UhoxoYrJ6Qs?t=29m40s)
-- New Live Streams [35:34] (https://youtu.be/UhoxoYrJ6Qs?t=35m34s)
-- New Internet Radio Station DJ'd by campers [36:30] (https://youtu.be/UhoxoYrJ6Qs?t=36m30s)
-- FCC Bot [39:24] (https://youtu.be/UhoxoYrJ6Qs?t=39m24s)
-- Matt Yamamoto Zipline Demo [54:24] (https://youtu.be/UhoxoYrJ6Qs?t=54m24s)
-- Closing from Quincy [1:04:15] (https://youtu.be/UhoxoYrJ6Qs?t=1h4m15s)
-- [Pull Request After Party with Quincy] (https://youtu.be/r0lCJ_TFYlI)
-
-<a href="http://www.youtube.com/watch?feature=player_embedded&v=UhoxoYrJ6Qs
-" target="_blank"><img src="https://www.evernote.com/l/AnvmsUWWNeJFNbfm7fDa7SRLmnbn7jafRL4B/image.png" 
+### Free Code Camp's [August Live Stream] (https://youtu.be/UhoxoYrJ6Qs) was the largest yet.
+
+## The agenda included:
+
+- Opening words from Michael
+- New front end challenges [3:00] (https://youtu.be/UhoxoYrJ6Qs?t=3m)
+- Newly configured full-stack challenges
+- New Nonprofit Projects [12:32] (https://youtu.be/UhoxoYrJ6Qs?t=12m32s)
+- Wiki [22:49] (https://youtu.be/UhoxoYrJ6Qs?t=22m49s)
+- New chat rooms [29:40] (https://youtu.be/UhoxoYrJ6Qs?t=29m40s)
+- New Live Streams [35:34] (https://youtu.be/UhoxoYrJ6Qs?t=35m34s)
+- New Internet Radio Station DJ'd by campers [36:30] (https://youtu.be/UhoxoYrJ6Qs?t=36m30s)
+- FCC Bot [39:24] (https://youtu.be/UhoxoYrJ6Qs?t=39m24s)
+- Matt Yamamoto Zipline Demo [54:24] (https://youtu.be/UhoxoYrJ6Qs?t=54m24s)
+- Closing from Quincy [1:04:15] (https://youtu.be/UhoxoYrJ6Qs?t=1h4m15s)
+- [Pull Request After Party with Quincy] (https://youtu.be/r0lCJ_TFYlI)
+
+<a href="http://www.youtube.com/watch?feature=player_embedded&v=UhoxoYrJ6Qs
+" target="_blank"><img src="https://www.evernote.com/l/AnvmsUWWNeJFNbfm7fDa7SRLmnbn7jafRL4B/image.png" 
 alt="Screen shot from our twitch feed on August 1 2015" width="560" height="315"border="10" /></a>
\ No newline at end of file
diff --git a/Backend-file-structure.md b/Backend-file-structure.md
index 1124170..199df8f 100644
--- a/Backend-file-structure.md
+++ b/Backend-file-structure.md
@@ -1,9 +1,9 @@
-Your app’s backend api that interacts with your database is located in **/server/api**  
-Let’s take a look at **/server/api/thing**: 
-
-1. **index.js**:  this file routes the $http API requests made from your app’s front-end to the appropriate function in **thing.controller.js ** 
-2. **thing.controller.js**: Here is where we actually deal with the database! Take a minute to look through here and figure out what’s going on. These functions will: return all items in a collection, return a single item from a collection when passed its id, post an item to a collection, update an item in the collection (this doesn’t really work as intended out of the box, we're going to fix that in a minute), and of course, delete an item from the collection.  
-3. **thing.model.js**: Here, the actual structure of a *thing* object is defined. You can add or remove any fields you want from the *thing* model, and as long as they’re syntactically correct they won’t break anything, even if there are *things* with different schemas in your database already. But! You don’t just have to edit the *thing* model to make a new type of collection, because generator-angular-fullstack can do it for you!
-
-[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Grunt)
+Your app’s backend api that interacts with your database is located in **/server/api**  
+Let’s take a look at **/server/api/thing**: 
+
+1. **index.js**:  this file routes the $http API requests made from your app’s front-end to the appropriate function in **thing.controller.js ** 
+2. **thing.controller.js**: Here is where we actually deal with the database! Take a minute to look through here and figure out what’s going on. These functions will: return all items in a collection, return a single item from a collection when passed its id, post an item to a collection, update an item in the collection (this doesn’t really work as intended out of the box, we're going to fix that in a minute), and of course, delete an item from the collection.  
+3. **thing.model.js**: Here, the actual structure of a *thing* object is defined. You can add or remove any fields you want from the *thing* model, and as long as they’re syntactically correct they won’t break anything, even if there are *things* with different schemas in your database already. But! You don’t just have to edit the *thing* model to make a new type of collection, because generator-angular-fullstack can do it for you!
+
+[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Grunt)
 [NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-API-endpoint)
\ No newline at end of file
diff --git a/Basejump-Resources.md b/Basejump-Resources.md
index 0ad984b..1549eab 100644
--- a/Basejump-Resources.md
+++ b/Basejump-Resources.md
@@ -1,36 +1,36 @@
-The curriculum lead-up to the first Basejump is not very comprehensive.  Here are a number of common resources which other campers have found helpful.
-
-### Getting Started with Basejumps
-* https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Intro-to-Yeoman-Angular-Fullstack-Basejumps - Lots of helpful tips and tricks for the Yeoman Angular Fullstack setup
-* https://github.com/DaftMonk/generator-angular-fullstack#generators - Generator used by Yeoman, you can find syntax and what files it creates
-
-### APIs
-* API for Charting the stock market: https://www.quandl.com/help/api
-
-### MEAN Stack Tutorials & Videos
-* 5 Part Series on setting up a MEAN stack 
-https://www.youtube.com/watch?v=kHV7gOHvNdk
-
-* A MEAN tutorial that creates a simple Twitter clone
-https://channel9.msdn.com/Series/MEAN-Stack-Jump-Start
-
-* Clementine is a stripped down MEAN stack, great for learning the fundamentals.  
-https://johnstonbl01.github.io/clementinejs/tutorials/tutorial-beginner.html
-
-* Authentication with Passport for the MEAN stack:
-https://vickev.com/#!/article/authentication-in-single-page-applications-node-js-passportjs-angularjs
-
-* An amazing list of resources for learning the MEAN stack:
-https://github.com/ericdouglas/MEAN-Learning
-
-### Scotch IO Tutorials
-* https://scotch.io/tutorials/setting-up-a-mean-stack-single-page-application   
-* https://scotch.io/tutorials/node-and-angular-to-do-app-application-organization-and-structure
-
-### Node/Express
-* [Online Debugging for Node.js/Express](http://stackoverflow.com/a/16512303/1420506)
-
-### Cloud 9 Tricks
-##### Speed up browser reloads
-1. Open gruntfile.js and edit both instances of `livereload: true` to `livereload: false`.
+The curriculum lead-up to the first Basejump is not very comprehensive.  Here are a number of common resources which other campers have found helpful.
+
+### Getting Started with Basejumps
+* https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Intro-to-Yeoman-Angular-Fullstack-Basejumps - Lots of helpful tips and tricks for the Yeoman Angular Fullstack setup
+* https://github.com/DaftMonk/generator-angular-fullstack#generators - Generator used by Yeoman, you can find syntax and what files it creates
+
+### APIs
+* API for Charting the stock market: https://www.quandl.com/help/api
+
+### MEAN Stack Tutorials & Videos
+* 5 Part Series on setting up a MEAN stack 
+https://www.youtube.com/watch?v=kHV7gOHvNdk
+
+* A MEAN tutorial that creates a simple Twitter clone
+https://channel9.msdn.com/Series/MEAN-Stack-Jump-Start
+
+* Clementine is a stripped down MEAN stack, great for learning the fundamentals.  
+https://johnstonbl01.github.io/clementinejs/tutorials/tutorial-beginner.html
+
+* Authentication with Passport for the MEAN stack:
+https://vickev.com/#!/article/authentication-in-single-page-applications-node-js-passportjs-angularjs
+
+* An amazing list of resources for learning the MEAN stack:
+https://github.com/ericdouglas/MEAN-Learning
+
+### Scotch IO Tutorials
+* https://scotch.io/tutorials/setting-up-a-mean-stack-single-page-application   
+* https://scotch.io/tutorials/node-and-angular-to-do-app-application-organization-and-structure
+
+### Node/Express
+* [Online Debugging for Node.js/Express](http://stackoverflow.com/a/16512303/1420506)
+
+### Cloud 9 Tricks
+##### Speed up browser reloads
+1. Open gruntfile.js and edit both instances of `livereload: true` to `livereload: false`.
 2. Open server/config/express.js and comment out the line `app.use(require('connect-livereload')());`
\ No newline at end of file
diff --git a/Bobby-Tables.md b/Bobby-Tables.md
index 12c93b4..f454858 100644
--- a/Bobby-Tables.md
+++ b/Bobby-Tables.md
@@ -1,2 +1,2 @@
-![Her daughter is named Help I'm trapped in a driver's license factory](https://imgs.xkcd.com/comics/exploits_of_a_mom.png)  
-*Source:[xkcd](https://xkcd.com/327/)*
+![Her daughter is named Help I'm trapped in a driver's license factory](https://imgs.xkcd.com/comics/exploits_of_a_mom.png)  
+*Source:[xkcd](https://xkcd.com/327/)*
diff --git a/Bonfire-Arguments-Optional.md b/Bonfire-Arguments-Optional.md
index cf5d637..1c19d5e 100644
--- a/Bonfire-Arguments-Optional.md
+++ b/Bonfire-Arguments-Optional.md
@@ -1,82 +1,82 @@
-![](http://i.imgur.com/63Iaec6.jpg)
-
-# Explanation:
-It can be quite complicated to understand what needs to be done. There is always many ways to do something when coding but regardless of the algorithm used,  we have to create a program that does the following:
-- It has to add two numbers passed as parameters and return the sum.
-- It has to check if any of the numbers are actual numbers, otherwise return **undefined** and stop the program right there.
-- It has to check if it has one or two arguments passed. More re ignored.
-- If it has only one then it has to return a function that used that number and expects another one, to then add it.
-
-## Hint: 1
-Every time you deal with an argument, you have to check if it is a number or not. For this a function that handles this task will save you repeated code.
-
-## Hint: 2
-When working on the case that it needs to return the function, it is wise to check if the first and only argument is a number again and base the code on that.
-
-## Hint: 3
-In the case that only one argument was passed, do not worry about how to prompt input for the second one, just make the function definition properly and things will work out the way they should.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function add() {
-  // Function to check if a number is actually a number
-  // and return undefined otherwise.
-  var checkNum = function(num) {
-    if (typeof num !== 'number') {
-      return undefined;
-    } else
-      return num;
-  };
-
-  // Check if we have two parameters, check if they are numbers
-  // handle the case where one is not
-  // returns the addition.
-  if (arguments.length > 1) {
-    var a = checkNum(arguments[0]);
-    var b = checkNum(arguments[1]);
-    if (a === undefined || b === undefined) {
-      return undefined;
-    } else {
-      return a + b;
-    }
-  } else {
-    // If only one parameter was found, returns a new function that expects two
-    // Store first argument before entering the new function scope
-    var c = arguments[0];
-
-    // Check the number again, must be outside the function to about returning an object
-    // instead of undefined.
-    if (checkNum(c)) {
-      // Return function that expect a second argument.
-      return function(arg2) {
-        // Check for non-numbers
-        if (c === undefined || checkNum(arg2) === undefined) {
-          return undefined;
-        } else {
-          // if numbers then add them.
-          return c + arg2;
-        }
-      };
-    }
-  }
-}
-```
-
-# Code Explanation:
-- First, I create a function with the sole purpose of checking if a number is actually a number and returns undefined if it is not. It uses **typeof** to check.
-- Check if we have two parameters, if so, then check if they are numbers or not using the **checkNum** function I created.
-- If they are not **undefined** then add them and return the addition. If they any of them is undefined then return undefined.
-- In the case that we only have one argument, then we return a new function that expects two parameters. For this we store the first argument before going into a new scope to avoid our arguments being overwritten.
-- Still inside the big else, we need to check the argument we saved, if it is a number then we return the function expecting a second argument.
-- Now inside the function we are returning, we have to check for non numbers again just as at the beginning using **checkNum** if undefined then return that, otherwise if numbers add them and return the addition.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+![](http://i.imgur.com/63Iaec6.jpg)
+
+# Explanation:
+It can be quite complicated to understand what needs to be done. There is always many ways to do something when coding but regardless of the algorithm used,  we have to create a program that does the following:
+- It has to add two numbers passed as parameters and return the sum.
+- It has to check if any of the numbers are actual numbers, otherwise return **undefined** and stop the program right there.
+- It has to check if it has one or two arguments passed. More re ignored.
+- If it has only one then it has to return a function that used that number and expects another one, to then add it.
+
+## Hint: 1
+Every time you deal with an argument, you have to check if it is a number or not. For this a function that handles this task will save you repeated code.
+
+## Hint: 2
+When working on the case that it needs to return the function, it is wise to check if the first and only argument is a number again and base the code on that.
+
+## Hint: 3
+In the case that only one argument was passed, do not worry about how to prompt input for the second one, just make the function definition properly and things will work out the way they should.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function add() {
+  // Function to check if a number is actually a number
+  // and return undefined otherwise.
+  var checkNum = function(num) {
+    if (typeof num !== 'number') {
+      return undefined;
+    } else
+      return num;
+  };
+
+  // Check if we have two parameters, check if they are numbers
+  // handle the case where one is not
+  // returns the addition.
+  if (arguments.length > 1) {
+    var a = checkNum(arguments[0]);
+    var b = checkNum(arguments[1]);
+    if (a === undefined || b === undefined) {
+      return undefined;
+    } else {
+      return a + b;
+    }
+  } else {
+    // If only one parameter was found, returns a new function that expects two
+    // Store first argument before entering the new function scope
+    var c = arguments[0];
+
+    // Check the number again, must be outside the function to about returning an object
+    // instead of undefined.
+    if (checkNum(c)) {
+      // Return function that expect a second argument.
+      return function(arg2) {
+        // Check for non-numbers
+        if (c === undefined || checkNum(arg2) === undefined) {
+          return undefined;
+        } else {
+          // if numbers then add them.
+          return c + arg2;
+        }
+      };
+    }
+  }
+}
+```
+
+# Code Explanation:
+- First, I create a function with the sole purpose of checking if a number is actually a number and returns undefined if it is not. It uses **typeof** to check.
+- Check if we have two parameters, if so, then check if they are numbers or not using the **checkNum** function I created.
+- If they are not **undefined** then add them and return the addition. If they any of them is undefined then return undefined.
+- In the case that we only have one argument, then we return a new function that expects two parameters. For this we store the first argument before going into a new scope to avoid our arguments being overwritten.
+- Still inside the big else, we need to check the argument we saved, if it is a number then we return the function expecting a second argument.
+- Now inside the function we are returning, we have to check for non numbers again just as at the beginning using **checkNum** if undefined then return that, otherwise if numbers add them and return the addition.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Binary-Agents.md b/Bonfire-Binary-Agents.md
index 8335149..63a14a8 100644
--- a/Bonfire-Binary-Agents.md
+++ b/Bonfire-Binary-Agents.md
@@ -1,90 +1,90 @@
-![](http://i.imgur.com/HSwaSFK.jpg)
-
-# Explanation:
-This problem is very straight forward, you will get string that will represent a sentence in binary code, and you need to translate that into words. There is not direct way to do this so you will have to translate twice.
-
-You should first convert from **binary** to **decimal** and from decimal before translating those values into characters
-
-## Hint: 2
-Things are easier when focusing on smaller parts, divide the input to focus on one letter at the time.
-
-## Hint: 3
-Make sure that each time you transcode a character from binary to decimal, that you reset whatever variable you used to keep track of the ones. Also do not forget to turn everything back into one string.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function binaryAgent(str) {
-  biString = str.split(' ');
-  uniString = [];
-  
-/*using the radix (or base) parameter in parseInt, we can convert the binary 
-  number to a decimal number while simultaneously converting to a char*/
-
-   for(i=0;i < biString.length;i++){
-   uniString.push(String.fromCharCode(parseInt(biString[i], 2))); 
-  }
-//we then simply join the string
-  return uniString.join('');
-}
-```
-# Code Explanation:
-- Separate the string into an array of strings separated by whitespace.
-- Create some variables that will be needed along the way, the names are self explanatory for the most part.
-- Iterate through each binary string in the new array.
-- Convert to decimal by using parseInt(*binary*, 2) (with the second parameter we tell in which base our numbers currently are) 
-- At the end, we return out converted message.
-
-## Alternative Solution:
-
-```js
-function binaryAgent(str) {
-  // Separate the binary code by space.
-  str = str.split(' ');
-  var power;
-  var decValue = 0;
-  var sentence = '';
-
-  // Check each binary number from the array.
-  for (var s = 0; s < str.length; s++) {
-    // Check each bit from binary number
-    for (var t = 0; t < str[s].length; t++) {
-      // This only takes into consideration the active ones.
-      if (str[s][t] == 1) {
-        // This is quivalent to 2 ** position
-        power = Math.pow(2, +str[s].length - t - 1);
-        decValue += power;
-
-        // Record the decimal value by adding the number to the previous one.
-      }
-    }
-
-    // After the binary number is converted to decimal, convert it to string and store
-    sentence += (String.fromCharCode(decValue));
-
-    // Reset decimal value for next binary number.
-    decValue = 0;
-  }
-
-  return sentence;
-}
-```
-# Explanation for the second solution
-- For each of these binary strings, check for the ones and ignore the zeroes.
-- For those that are one or active then convert them to decimal, this takes into account the position and the right power it needs to be raised to.
-- Store the power into the **power** variable by adding it to any previous ones on the variable **decValue**. This variable will add and add the powers of the active ones until the end of the loop and then return the decimal number.
-- Convert the final decimal outside of the inner loop and then convert it to ASCII and saving it to **sentence** along with any other text string already converted and stored.
-- Reset the variable **decValue** to avoid getting wrong decimals before continuing to the outer loop.
-
-
-
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282 @JamesKee`**
-
+![](http://i.imgur.com/HSwaSFK.jpg)
+
+# Explanation:
+This problem is very straight forward, you will get string that will represent a sentence in binary code, and you need to translate that into words. There is not direct way to do this so you will have to translate twice.
+
+You should first convert from **binary** to **decimal** and from decimal before translating those values into characters
+
+## Hint: 2
+Things are easier when focusing on smaller parts, divide the input to focus on one letter at the time.
+
+## Hint: 3
+Make sure that each time you transcode a character from binary to decimal, that you reset whatever variable you used to keep track of the ones. Also do not forget to turn everything back into one string.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function binaryAgent(str) {
+  biString = str.split(' ');
+  uniString = [];
+  
+/*using the radix (or base) parameter in parseInt, we can convert the binary 
+  number to a decimal number while simultaneously converting to a char*/
+
+   for(i=0;i < biString.length;i++){
+   uniString.push(String.fromCharCode(parseInt(biString[i], 2))); 
+  }
+//we then simply join the string
+  return uniString.join('');
+}
+```
+# Code Explanation:
+- Separate the string into an array of strings separated by whitespace.
+- Create some variables that will be needed along the way, the names are self explanatory for the most part.
+- Iterate through each binary string in the new array.
+- Convert to decimal by using parseInt(*binary*, 2) (with the second parameter we tell in which base our numbers currently are) 
+- At the end, we return out converted message.
+
+## Alternative Solution:
+
+```js
+function binaryAgent(str) {
+  // Separate the binary code by space.
+  str = str.split(' ');
+  var power;
+  var decValue = 0;
+  var sentence = '';
+
+  // Check each binary number from the array.
+  for (var s = 0; s < str.length; s++) {
+    // Check each bit from binary number
+    for (var t = 0; t < str[s].length; t++) {
+      // This only takes into consideration the active ones.
+      if (str[s][t] == 1) {
+        // This is quivalent to 2 ** position
+        power = Math.pow(2, +str[s].length - t - 1);
+        decValue += power;
+
+        // Record the decimal value by adding the number to the previous one.
+      }
+    }
+
+    // After the binary number is converted to decimal, convert it to string and store
+    sentence += (String.fromCharCode(decValue));
+
+    // Reset decimal value for next binary number.
+    decValue = 0;
+  }
+
+  return sentence;
+}
+```
+# Explanation for the second solution
+- For each of these binary strings, check for the ones and ignore the zeroes.
+- For those that are one or active then convert them to decimal, this takes into account the position and the right power it needs to be raised to.
+- Store the power into the **power** variable by adding it to any previous ones on the variable **decValue**. This variable will add and add the powers of the active ones until the end of the loop and then return the decimal number.
+- Convert the final decimal outside of the inner loop and then convert it to ASCII and saving it to **sentence** along with any other text string already converted and stored.
+- Reset the variable **decValue** to avoid getting wrong decimals before continuing to the outer loop.
+
+
+
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282 @JamesKee`**
+
 > **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
\ No newline at end of file
diff --git a/Bonfire-Boo-who.md b/Bonfire-Boo-who.md
index 387380f..eb496b6 100644
--- a/Bonfire-Boo-who.md
+++ b/Bonfire-Boo-who.md
@@ -1,36 +1,36 @@
-![](http://i.imgur.com/CgROCEF.jpg)
-
-# Problem Explanation:
-- This program is very simple, the trick is to understand what a boolean primitive is. The programs requires a true or false answer.
-
-## Hint: 1
-- You will need to check for the type of the parameter to see if it is a boolean.
-
-## Hint: 2
-- To check for the type of a parameter, you can use `typeof`
-
-## Hint: 3
-- Since you must return true or false you can use if statements or just have it return the boolean used for the if statement.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function boo(bool) {
-  // Uses the operator typeof to check if is a boolean
-  // if yes then return true, if it is another type then return false
-  return typeof bool === 'boolean';
-}
-```
-
-# Code Explanation:
-- Read comments on code.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+![](http://i.imgur.com/CgROCEF.jpg)
+
+# Problem Explanation:
+- This program is very simple, the trick is to understand what a boolean primitive is. The programs requires a true or false answer.
+
+## Hint: 1
+- You will need to check for the type of the parameter to see if it is a boolean.
+
+## Hint: 2
+- To check for the type of a parameter, you can use `typeof`
+
+## Hint: 3
+- Since you must return true or false you can use if statements or just have it return the boolean used for the if statement.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function boo(bool) {
+  // Uses the operator typeof to check if is a boolean
+  // if yes then return true, if it is another type then return false
+  return typeof bool === 'boolean';
+}
+```
+
+# Code Explanation:
+- Read comments on code.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Check-for-Palindromes.md b/Bonfire-Check-for-Palindromes.md
index c8d0018..8a39910 100644
--- a/Bonfire-Check-for-Palindromes.md
+++ b/Bonfire-Check-for-Palindromes.md
@@ -1,55 +1,55 @@
-![](http://i.imgur.com/ozDWKEi.jpg)
-
-# Explanation:
-You have to check if the string you get as an input is a palindrome and return `true` if it is, and `false` otherwise.
-
-## Hint: 1
-You may use regular expressions (`RegExp`) to remove unwanted characters from the string.
-- [http://devdocs.io/#q=js+RegExp](http://devdocs.io/#q=js+RegExp)
-
-## Hint: 2
-You may use `Array.prototype.split` and `Array.prototype.join` methods or `for` loop.
-- [http://devdocs.io/#q=js+String+split](http://devdocs.io/#q=js+String+split)
-- [http://devdocs.io/#q=js+Array+join](http://devdocs.io/#q=js+Array+join)
-- [http://devdocs.io/#q=js+for](http://devdocs.io/#q=js+for)
-
-## Hint: 3
-You may lowercase the string using `String.prototype.toLowerCase`.
-- [http://devdocs.io/#q=js+String+toLowerCase](http://devdocs.io/#q=js+String+toLowerCase)
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## First
-
-```js
-function palindrome(str) {
-  var normalizedStr = str.replace(/[\W_]/g, '').toLowerCase();
-  var reverseStr = normalizedStr.split('').reverse().join('');
-  return normalizedStr === reverseStr;
-}
-```
-
-## Second
-
-```js
-function palindrome(str) {
-  str = str.toLowerCase().replace(/[\W_]/g, '');
-  for(var i = 0, len = str.length - 1; i < len/2; i++) {
-    if(str[i] !== str[len-i]) {
-      return false;
-    }
-  }
-  return true;
-}
-```
-
-# Code Explanation:
-We use regular expressions to replace any uppercase letter into a lowercase. Then we check if the string is the same as the reversed string using `split()` to split the original string by characters, then reverse and then join it back together.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282 @abhisekp`
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+![](http://i.imgur.com/ozDWKEi.jpg)
+
+# Explanation:
+You have to check if the string you get as an input is a palindrome and return `true` if it is, and `false` otherwise.
+
+## Hint: 1
+You may use regular expressions (`RegExp`) to remove unwanted characters from the string.
+- [http://devdocs.io/#q=js+RegExp](http://devdocs.io/#q=js+RegExp)
+
+## Hint: 2
+You may use `Array.prototype.split` and `Array.prototype.join` methods or `for` loop.
+- [http://devdocs.io/#q=js+String+split](http://devdocs.io/#q=js+String+split)
+- [http://devdocs.io/#q=js+Array+join](http://devdocs.io/#q=js+Array+join)
+- [http://devdocs.io/#q=js+for](http://devdocs.io/#q=js+for)
+
+## Hint: 3
+You may lowercase the string using `String.prototype.toLowerCase`.
+- [http://devdocs.io/#q=js+String+toLowerCase](http://devdocs.io/#q=js+String+toLowerCase)
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## First
+
+```js
+function palindrome(str) {
+  var normalizedStr = str.replace(/[\W_]/g, '').toLowerCase();
+  var reverseStr = normalizedStr.split('').reverse().join('');
+  return normalizedStr === reverseStr;
+}
+```
+
+## Second
+
+```js
+function palindrome(str) {
+  str = str.toLowerCase().replace(/[\W_]/g, '');
+  for(var i = 0, len = str.length - 1; i < len/2; i++) {
+    if(str[i] !== str[len-i]) {
+      return false;
+    }
+  }
+  return true;
+}
+```
+
+# Code Explanation:
+We use regular expressions to replace any uppercase letter into a lowercase. Then we check if the string is the same as the reversed string using `split()` to split the original string by characters, then reverse and then join it back together.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282 @abhisekp`
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Chunky-Monkey.md b/Bonfire-Chunky-Monkey.md
index dd2d263..7554fb5 100644
--- a/Bonfire-Chunky-Monkey.md
+++ b/Bonfire-Chunky-Monkey.md
@@ -1,137 +1,137 @@
-![](http://i.imgur.com/RdrnNvA.png)
-
-# Explanation
-Our goal for this bonfire is to split `arr` (first argument) into smaller chunks of arrays with the length provided by `size` (second argument). There are 4 green checks (objectives) our code needs to pass in order to complete this bonfire:
-1. `(['a', 'b', 'c', 'd'], 2)` is expected to be `[['a', 'b'], ['c', 'd']]`
-2. `([0, 1, 2, 3, 4, 5], 3)` is expected to be `[[0, 1, 2], [3, 4, 5]]`
-3. `([0, 1, 2, 3, 4, 5], 2)` is expected to be `[[0, 1], [2, 3], [4, 5]]`
-4. `([0, 1, 2, 3, 4, 5], 4)` is expected to be `[[0, 1, 2, 3], [4, 5]]`
-
-Click **More information** under the bonfire title and read the helpful links if you haven't yet.   
-
-## How to approach the bonfire
-The helpful links suggest to use `Array.push()` so let's start by first creating a new array to store the smaller arrays we will soon have like this:
-
-```js
-var newArray = [];
-```
-
-  Next we'll need a `for loop` to loop through `arr` then finally we need a method to do the actual splitting and we can use `Array.slice()` to do that. The key to this bonfire is understanding how a `for loop`, `size`, `Array.slice()` and `Array.push()` all work together.  
-
-# How does a for loop and Array.slice() work
-**For Loop**
-
-A `for loop` keeps looping until a condition evaluates to false for example if we had:
-
-```js
-for (var i = 0; i < arr.length; i++)
-```
-
-  `i` starts with a value of 0, `i` loops until `i` is no longer less than the length of `arr` and during each repeat loop, the value of `i` increases by 1 (one). If `arr.length` happens to be 4 then the `for loop` stops right before `i` reaches 4.  
-
-**Array.slice() Method**
-
-`Array.slice()` method extracts a portion of an array and returns a copy into a new array. We can declare which element to start and which element to stop. For example, if `arr` is `['a', 'b', 'c', 'd']` and we used `arr.slice(1, 3);`, the `Array.slice()` method starts at element 1 and stops at element 3 then returns:
-
-```js
-["b","c"]
-```
-
-_Notice how it captures the start element but doesn't capture the stop element._  
-
-# Using a for loop and Array.slice() together
-If we use the following `for loop` while `size` is 2 (note: `size` = 2):
-
-```js
-(var i = 0; i < arr.length; i += size)
-```
-
-  The loop starts at element 0, loops once then `i += 2` which is another way of stating `i = i + 2` so now the new value of `i` becomes 2. What happens if we combine the following `arr.slice()` with the `for loop`?
-
-```js
-arr.slice(i, i + size)
-```
-
-# Push the arrays out
-We can combine the `Array.slice()` method with the `Array.push()` method inside the `for loop` like this:
-
-```js
-for (var i = 0; i < arr.length; i += size) {
-newArray.push(arr.slice(i, i + size));
-}
-```
-
-  `arr.slice()` will start at element 0 and stop at element 2. Here's the fun part: once the `for loop`, loops again then the value of `i` becomes 2 while the `i` in the `arr.slice()` will also have a value of 2. The new `arr.slice()` becomes:
-
-```js
-arr.slice(2, 2 + 2)
-```
-
-  Now `arr.slice()` starts at the element 2 and stops at element 4 and in the next loop, `arr.slice()` will start at element 4 and stop at element 6. `newArray.push()` will push all the elements out into chunks of smaller arrays with the length of `size`.  
-
-## Solution 1:
-
-```js
-function chunk(arr, size) {
-
-  var temp = [];
-  var result = [];
-
-  for (var a = 0; a < arr.length; a++) {
-    if (a % size !== size - 1)
-      temp.push(arr[a]);
-    else {
-      temp.push(arr[a]);
-      result.push(temp);
-      temp = [];
-    }
-  }
-
-  if (temp.length !== 0)
-    result.push(temp);
-  return result;
-}
-```
-
-## Solution 2:
-
-```js
-function chunk(arr, size) {
-  // Break it up
-  // It's already broken :(
-  arr = arr.slice();
-  var arr2 = [];
-  for(var i = 0, len = arr.length; i < len; i+=size) {
-    arr2.push(arr.slice(0, size));
-    arr = arr.slice(size);
-  }
-  return arr2;
-}
-```
-
-## Solution 3:
-
-```js
-function chunk(arr, size) {
-  
-  // Break it up.
-    
-  var newArr = [];
-  
-  for (var i = 0; i < arr.length; i += size) {
-    
-    newArr.push(arr.slice(i, i + size));
-    
-  };
-  
-  return newArr;
-}
-
-chunk(["a", "b", "c", "d"], 2, "");
-```
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @kirah1314 @Rafase282 @jsommamtek`
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
-
+![](http://i.imgur.com/RdrnNvA.png)
+
+# Explanation
+Our goal for this bonfire is to split `arr` (first argument) into smaller chunks of arrays with the length provided by `size` (second argument). There are 4 green checks (objectives) our code needs to pass in order to complete this bonfire:
+1. `(['a', 'b', 'c', 'd'], 2)` is expected to be `[['a', 'b'], ['c', 'd']]`
+2. `([0, 1, 2, 3, 4, 5], 3)` is expected to be `[[0, 1, 2], [3, 4, 5]]`
+3. `([0, 1, 2, 3, 4, 5], 2)` is expected to be `[[0, 1], [2, 3], [4, 5]]`
+4. `([0, 1, 2, 3, 4, 5], 4)` is expected to be `[[0, 1, 2, 3], [4, 5]]`
+
+Click **More information** under the bonfire title and read the helpful links if you haven't yet.   
+
+## How to approach the bonfire
+The helpful links suggest to use `Array.push()` so let's start by first creating a new array to store the smaller arrays we will soon have like this:
+
+```js
+var newArray = [];
+```
+
+  Next we'll need a `for loop` to loop through `arr` then finally we need a method to do the actual splitting and we can use `Array.slice()` to do that. The key to this bonfire is understanding how a `for loop`, `size`, `Array.slice()` and `Array.push()` all work together.  
+
+# How does a for loop and Array.slice() work
+**For Loop**
+
+A `for loop` keeps looping until a condition evaluates to false for example if we had:
+
+```js
+for (var i = 0; i < arr.length; i++)
+```
+
+  `i` starts with a value of 0, `i` loops until `i` is no longer less than the length of `arr` and during each repeat loop, the value of `i` increases by 1 (one). If `arr.length` happens to be 4 then the `for loop` stops right before `i` reaches 4.  
+
+**Array.slice() Method**
+
+`Array.slice()` method extracts a portion of an array and returns a copy into a new array. We can declare which element to start and which element to stop. For example, if `arr` is `['a', 'b', 'c', 'd']` and we used `arr.slice(1, 3);`, the `Array.slice()` method starts at element 1 and stops at element 3 then returns:
+
+```js
+["b","c"]
+```
+
+_Notice how it captures the start element but doesn't capture the stop element._  
+
+# Using a for loop and Array.slice() together
+If we use the following `for loop` while `size` is 2 (note: `size` = 2):
+
+```js
+(var i = 0; i < arr.length; i += size)
+```
+
+  The loop starts at element 0, loops once then `i += 2` which is another way of stating `i = i + 2` so now the new value of `i` becomes 2. What happens if we combine the following `arr.slice()` with the `for loop`?
+
+```js
+arr.slice(i, i + size)
+```
+
+# Push the arrays out
+We can combine the `Array.slice()` method with the `Array.push()` method inside the `for loop` like this:
+
+```js
+for (var i = 0; i < arr.length; i += size) {
+newArray.push(arr.slice(i, i + size));
+}
+```
+
+  `arr.slice()` will start at element 0 and stop at element 2. Here's the fun part: once the `for loop`, loops again then the value of `i` becomes 2 while the `i` in the `arr.slice()` will also have a value of 2. The new `arr.slice()` becomes:
+
+```js
+arr.slice(2, 2 + 2)
+```
+
+  Now `arr.slice()` starts at the element 2 and stops at element 4 and in the next loop, `arr.slice()` will start at element 4 and stop at element 6. `newArray.push()` will push all the elements out into chunks of smaller arrays with the length of `size`.  
+
+## Solution 1:
+
+```js
+function chunk(arr, size) {
+
+  var temp = [];
+  var result = [];
+
+  for (var a = 0; a < arr.length; a++) {
+    if (a % size !== size - 1)
+      temp.push(arr[a]);
+    else {
+      temp.push(arr[a]);
+      result.push(temp);
+      temp = [];
+    }
+  }
+
+  if (temp.length !== 0)
+    result.push(temp);
+  return result;
+}
+```
+
+## Solution 2:
+
+```js
+function chunk(arr, size) {
+  // Break it up
+  // It's already broken :(
+  arr = arr.slice();
+  var arr2 = [];
+  for(var i = 0, len = arr.length; i < len; i+=size) {
+    arr2.push(arr.slice(0, size));
+    arr = arr.slice(size);
+  }
+  return arr2;
+}
+```
+
+## Solution 3:
+
+```js
+function chunk(arr, size) {
+  
+  // Break it up.
+    
+  var newArr = [];
+  
+  for (var i = 0; i < arr.length; i += size) {
+    
+    newArr.push(arr.slice(i, i + size));
+    
+  };
+  
+  return newArr;
+}
+
+chunk(["a", "b", "c", "d"], 2, "");
+```
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @kirah1314 @Rafase282 @jsommamtek`
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+
diff --git a/Bonfire-Confirm-the-Ending.md b/Bonfire-Confirm-the-Ending.md
index 8a498e5..7d62cf1 100644
--- a/Bonfire-Confirm-the-Ending.md
+++ b/Bonfire-Confirm-the-Ending.md
@@ -1,37 +1,37 @@
-![](http://i.imgur.com/Z7vhddH.jpg)
-
-# Explanation:
-The function is a whole Boolean operation. You need to return true if the first argument ends with the second argument. This means that for the problem script, it should return true for the `end('Bastian', 'n'); case.`
-
-## Hint: 1
-Take a look at how substr() works. You will be trying to get the last Nth characters.
-
-## Hint: 2
-To get the Nth-to-Last character you will use length() and turn it into a negative number.
-
-## Hint: 3
-Check that you have the proper syntax and that you use `===` to compare.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function end(str, target) {
-  if (str.substr(-target.length) === target)
-    return true;
-  else
-    return false;
-}
-```
-
-# Code Explanation:
-We use the subtring() with the negative value of the lengths of target. We could use -1 to get the last element but if the target is actually longer than one letter then the program will provide the wrong information. Then we return true or false as needed.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282`
-
+![](http://i.imgur.com/Z7vhddH.jpg)
+
+# Explanation:
+The function is a whole Boolean operation. You need to return true if the first argument ends with the second argument. This means that for the problem script, it should return true for the `end('Bastian', 'n'); case.`
+
+## Hint: 1
+Take a look at how substr() works. You will be trying to get the last Nth characters.
+
+## Hint: 2
+To get the Nth-to-Last character you will use length() and turn it into a negative number.
+
+## Hint: 3
+Check that you have the proper syntax and that you use `===` to compare.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function end(str, target) {
+  if (str.substr(-target.length) === target)
+    return true;
+  else
+    return false;
+}
+```
+
+# Code Explanation:
+We use the subtring() with the negative value of the lengths of target. We could use -1 to get the last element but if the target is actually longer than one letter then the program will provide the wrong information. Then we return true or false as needed.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282`
+
 > **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
\ No newline at end of file
diff --git a/Bonfire-Convert-HTML-Entities.md b/Bonfire-Convert-HTML-Entities.md
index 7550844..0960618 100644
--- a/Bonfire-Convert-HTML-Entities.md
+++ b/Bonfire-Convert-HTML-Entities.md
@@ -1,80 +1,80 @@
-![](http://i.imgur.com/g7sWL1I.jpg)
-
-# Problem Explanation:
-- You have to create a program that will convert HTML entities from string to their corresponding HTML entities. There are only a few so you can use different methods.
-
-## Hint: 1
-- You can use regular Expressions however I didn't in this case.
-
-## Hint: 2
-- You will benefit form a chart with all the html entities so you know which ones are the right ones to put.
-
-## Hint: 3
-- You should separate the string and work with each character to convert the right ones and then join everything back up.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function convert(str) {
-  // Split by character to avoid problems.
-
-  var temp = str.split('');
-
-  // Since we are only checking for a few HTML elements I used a switch
-
-  for (var i = 0; i < temp.length; i++) {
-    switch (temp[i]) {
-      case '<':
-        temp[i] = '&lt;';
-        break;
-      case '&':
-        temp[i] = '&amp;';
-        break;
-      case '>':
-        temp[i] = '&gt;';
-        break;
-      case '"':
-        temp[i] = '&quot;';
-        break;
-      case "'":
-        temp[i] = '&apos;';
-        break;
-    }
-  }
-
-  temp = temp.join('');
-  return temp;
-}
-```
-
-##Another Solution
-```js
-function convert(str) {
-    
-    //map of key:value pairs
-    var html = {
-       "&":"&amp;",
-       "<":"&lt;",
-       ">":"&gt;",
-       "\"":"&quot;",
-       "\'":"&apos;"
-    };
-        str = str.replace(/&|<|>|"|'/gi, function(matched){
-        return html[matched];
-        });
-
-  return str;
-}
-```
-# Code Explanation:
-- Read comments in code.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`** **`thanks @jhalls`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+![](http://i.imgur.com/g7sWL1I.jpg)
+
+# Problem Explanation:
+- You have to create a program that will convert HTML entities from string to their corresponding HTML entities. There are only a few so you can use different methods.
+
+## Hint: 1
+- You can use regular Expressions however I didn't in this case.
+
+## Hint: 2
+- You will benefit form a chart with all the html entities so you know which ones are the right ones to put.
+
+## Hint: 3
+- You should separate the string and work with each character to convert the right ones and then join everything back up.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function convert(str) {
+  // Split by character to avoid problems.
+
+  var temp = str.split('');
+
+  // Since we are only checking for a few HTML elements I used a switch
+
+  for (var i = 0; i < temp.length; i++) {
+    switch (temp[i]) {
+      case '<':
+        temp[i] = '&lt;';
+        break;
+      case '&':
+        temp[i] = '&amp;';
+        break;
+      case '>':
+        temp[i] = '&gt;';
+        break;
+      case '"':
+        temp[i] = '&quot;';
+        break;
+      case "'":
+        temp[i] = '&apos;';
+        break;
+    }
+  }
+
+  temp = temp.join('');
+  return temp;
+}
+```
+
+##Another Solution
+```js
+function convert(str) {
+    
+    //map of key:value pairs
+    var html = {
+       "&":"&amp;",
+       "<":"&lt;",
+       ">":"&gt;",
+       "\"":"&quot;",
+       "\'":"&apos;"
+    };
+        str = str.replace(/&|<|>|"|'/gi, function(matched){
+        return html[matched];
+        });
+
+  return str;
+}
+```
+# Code Explanation:
+- Read comments in code.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`** **`thanks @jhalls`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-DNA-Pairing.md b/Bonfire-DNA-Pairing.md
index 8a5facc..f49f1bf 100644
--- a/Bonfire-DNA-Pairing.md
+++ b/Bonfire-DNA-Pairing.md
@@ -1,63 +1,63 @@
-![](http://i.imgur.com/usiNBDU.jpg)
-
-# Problem Explanation:
-- You will get a DNA strand sequence and you need to get the pair and return it as a 2D array of the base pairs. Keep in mind that the provided strand should be first always.
-
-## Hint: 1
-- There are two base case, A-T and C-G, these go both way. You can use regular expression, if statements of anything that you can think of.
-
-## Hint: 2
-- I would recommend using a switch, as it makes things a lot smoother.
-
-## Hint: 3
-- The result must be an array of arrays, so keep that in mind when pushing things.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function pair(str) {
-  // Return each strand as an array of two elements, the original and the pair.
-  var paired = [];
-
-  // Function to check with strand to pair.
-  var search = function(char) {
-    switch (char) {
-      case 'A':
-        paired.push(['A', 'T']);
-        break;
-      case 'T':
-        paired.push(['T', 'A']);
-        break;
-      case 'C':
-        paired.push(['C', 'G']);
-        break;
-      case 'G':
-        paired.push(['G', 'C']);
-        break;
-    }
-  };
-
-  // Loops through the input and pair.
-  console.log(char);
-  for (var i = 0; i < str.length; i++) {
-    search(str[i]);
-  }
-
-  return paired;
-}
-```
-
-# Code Explanation:
-- The program is very simple, the best solution that I have come up with is to use a switch to catch all the possible four elements. Using if statements would take too much code. You could also use Regular Expressions.
-- Since we have to the original and the pair, I decided to take all four cases instead of the base two.
-- Create an empty array and use the `search` function to push the right values to the array and return them.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+![](http://i.imgur.com/usiNBDU.jpg)
+
+# Problem Explanation:
+- You will get a DNA strand sequence and you need to get the pair and return it as a 2D array of the base pairs. Keep in mind that the provided strand should be first always.
+
+## Hint: 1
+- There are two base case, A-T and C-G, these go both way. You can use regular expression, if statements of anything that you can think of.
+
+## Hint: 2
+- I would recommend using a switch, as it makes things a lot smoother.
+
+## Hint: 3
+- The result must be an array of arrays, so keep that in mind when pushing things.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function pair(str) {
+  // Return each strand as an array of two elements, the original and the pair.
+  var paired = [];
+
+  // Function to check with strand to pair.
+  var search = function(char) {
+    switch (char) {
+      case 'A':
+        paired.push(['A', 'T']);
+        break;
+      case 'T':
+        paired.push(['T', 'A']);
+        break;
+      case 'C':
+        paired.push(['C', 'G']);
+        break;
+      case 'G':
+        paired.push(['G', 'C']);
+        break;
+    }
+  };
+
+  // Loops through the input and pair.
+  console.log(char);
+  for (var i = 0; i < str.length; i++) {
+    search(str[i]);
+  }
+
+  return paired;
+}
+```
+
+# Code Explanation:
+- The program is very simple, the best solution that I have come up with is to use a switch to catch all the possible four elements. Using if statements would take too much code. You could also use Regular Expressions.
+- Since we have to the original and the pair, I decided to take all four cases instead of the base two.
+- Create an empty array and use the `search` function to push the right values to the array and return them.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Diff-Two-Arrays.md b/Bonfire-Diff-Two-Arrays.md
index c2db946..4e5891b 100644
--- a/Bonfire-Diff-Two-Arrays.md
+++ b/Bonfire-Diff-Two-Arrays.md
@@ -1,56 +1,56 @@
-![](http://i.imgur.com/HkEgef5.gif)
-
-# Explanation:
-Check two arrays and return a new array that contains only the items that are not in either of the original arrays.
-
-## Hint: 1
-- Merge the list to make it easy to compare functions.
-
-## Hint: 2
-- Use filter to get the new array, you will need to create a callback function.
-
-## Hint: 3
-- The best way to go about the callback function is to check if the number from the new merged array is not in **both** original arrays and return it.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function diff(arr1, arr2) {
-  var newArr = arr1.concat(arr2);
-
-  function check(item) {
-    if (arr1.indexOf(item) === -1 || arr2.indexOf(item) === -1) {
-      return item;
-    }
-  }
-
-  return newArr.filter(check);
-}
-```
-
-## Code Solution 2:
-
-```js
-function diff(arr1, arr2) {
-  // Same, same; but different.
-  var newArr = arr1.filter(function (el) {
-    return arr2.indexOf(el) === -1;
-    
-    // concat the previous output of filter method
-    // with the next output of filter method
-  }).concat(arr2.filter(function (el) {
-    return arr1.indexOf(el) === -1;
-  }));
-  return newArr;
-}
-```
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+![](http://i.imgur.com/HkEgef5.gif)
+
+# Explanation:
+Check two arrays and return a new array that contains only the items that are not in either of the original arrays.
+
+## Hint: 1
+- Merge the list to make it easy to compare functions.
+
+## Hint: 2
+- Use filter to get the new array, you will need to create a callback function.
+
+## Hint: 3
+- The best way to go about the callback function is to check if the number from the new merged array is not in **both** original arrays and return it.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function diff(arr1, arr2) {
+  var newArr = arr1.concat(arr2);
+
+  function check(item) {
+    if (arr1.indexOf(item) === -1 || arr2.indexOf(item) === -1) {
+      return item;
+    }
+  }
+
+  return newArr.filter(check);
+}
+```
+
+## Code Solution 2:
+
+```js
+function diff(arr1, arr2) {
+  // Same, same; but different.
+  var newArr = arr1.filter(function (el) {
+    return arr2.indexOf(el) === -1;
+    
+    // concat the previous output of filter method
+    // with the next output of filter method
+  }).concat(arr2.filter(function (el) {
+    return arr1.indexOf(el) === -1;
+  }));
+  return newArr;
+}
+```
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Drop-it.md b/Bonfire-Drop-it.md
index 12c69c6..c1fd209 100644
--- a/Bonfire-Drop-it.md
+++ b/Bonfire-Drop-it.md
@@ -1,57 +1,57 @@
-![](http://i.imgur.com/goyTFy2.png)
-
-# Explanation:
-Basically while the second argument is not true, you will have to remove the first element from the left of the array that was passed as the first argument.
-
-## Hint: 1
-You can use Array.shift() or filter that you should be more familiar with to solve this problem in a few lines of code.
-
-## Hint: 2
-Shift returns the element that was removed which we don't really need, all we need is the modified array that is left.
-
-## Hint: 3
-If you still can't figure out how to solve it with shift, then try solving it with filter, and check how filter works, if you become familiar with it, then you can make the code with shift.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution 1:
-
-```js
-function drop(arr, func) {
-  // Drop them elements.
-  var times = arr.length;
-  for (var i = 0; i < times; i++) {
-    if (func(arr[0])) {
-      break;
-    } else {
-      arr.shift();
-    }
-  }
-  return arr;
-}
-drop([1, 2, 3], function(n) {return n < 3; });
-```
-## Code Solution 2:
-```
-function drop(arr, func) {
-  // Drop them elements.
-  
-  arr = arr.filter(func);
-
-  return arr;
-}
-
-drop([1, 2, 3, 4], function(n) {return n >= 3;});
-```
-
-
-# Code Explanation:
-- Create a for loop to check each element.
-- Then check for the function given if true then stop, otherwise remove that element.
-- return the array.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282 @mhelmetag`
+![](http://i.imgur.com/goyTFy2.png)
+
+# Explanation:
+Basically while the second argument is not true, you will have to remove the first element from the left of the array that was passed as the first argument.
+
+## Hint: 1
+You can use Array.shift() or filter that you should be more familiar with to solve this problem in a few lines of code.
+
+## Hint: 2
+Shift returns the element that was removed which we don't really need, all we need is the modified array that is left.
+
+## Hint: 3
+If you still can't figure out how to solve it with shift, then try solving it with filter, and check how filter works, if you become familiar with it, then you can make the code with shift.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution 1:
+
+```js
+function drop(arr, func) {
+  // Drop them elements.
+  var times = arr.length;
+  for (var i = 0; i < times; i++) {
+    if (func(arr[0])) {
+      break;
+    } else {
+      arr.shift();
+    }
+  }
+  return arr;
+}
+drop([1, 2, 3], function(n) {return n < 3; });
+```
+## Code Solution 2:
+```
+function drop(arr, func) {
+  // Drop them elements.
+  
+  arr = arr.filter(func);
+
+  return arr;
+}
+
+drop([1, 2, 3, 4], function(n) {return n >= 3;});
+```
+
+
+# Code Explanation:
+- Create a for loop to check each element.
+- Then check for the function given if true then stop, otherwise remove that element.
+- return the array.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282 @mhelmetag`
diff --git a/Bonfire-Everything-be-True.md b/Bonfire-Everything-be-True.md
index d857e2f..1f172db 100644
--- a/Bonfire-Everything-be-True.md
+++ b/Bonfire-Everything-be-True.md
@@ -1,69 +1,69 @@
-![](http://i.imgur.com/oKEJJJI.jpg)
-
-# Explanation:
-The program needs to check if the second argument is a [truthy](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-truthy) element, and it must check this for each object in the first argument.
-
-## Hint: 1
-Remember to iterate through the first argument to check each object.
-
-## Hint: 2
-Only if all of them are truth will we return true, so make sure all of them check.
-
-## Hint: 3
-You could use loops or callbacks functions, there are multiple ways to solve this problem.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function every(collection, pre) {
-  // Create a counter to check how many are true.
-  var counter = 0;
-
-  // Check for each object
-  for (var c in collection) {
-    // If it has the same property or the same property value then add 1
-    if (collection[c].hasOwnProperty(pre) || collection[c][pre] == pre) {
-      counter++;
-    }
-  }
-
-  // Outside the loop, check to see if we got true for all of them and return true or false
-  if (counter == collection.length) {
-    return true;
-  } else
-    return false;
-}
-
-every([{'user': 'Tinky-Winky', 'sex': 'male'}, {'user': 'Dipsy', 'sex': 'male'}, {'user': 'Laa-Laa',
-'sex': 'female'}, {'user': 'Po', 'sex': 'female'}], 'sex');
-```
-
-# Code Explanation:
-- First I create a counter to check how many cases are actually true.
-- Then check for each object if it it has the same property or the same property value. If true then add one to the counter.
-- Outside the loop, I check to see if the counter variable has the same value as the length of **collection**, if true then return **true**, otherwise, return **false**
-
-## Alternative Code Solution:
-```js
-function every(collection, pre) {
-  // Does everyone have one of these?
-  return collection.every(function (element, index, array) {
-    return element.hasOwnProperty(pre);
-  });
-}
-
-every([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex");
-```
-# Code Explanation:
-- Uses the native "every" method to test whether all elements in the array pass the test.
-- This link will help [Array.prototype.every()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every)
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282 and @estevanmaito`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+![](http://i.imgur.com/oKEJJJI.jpg)
+
+# Explanation:
+The program needs to check if the second argument is a [truthy](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-truthy) element, and it must check this for each object in the first argument.
+
+## Hint: 1
+Remember to iterate through the first argument to check each object.
+
+## Hint: 2
+Only if all of them are truth will we return true, so make sure all of them check.
+
+## Hint: 3
+You could use loops or callbacks functions, there are multiple ways to solve this problem.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function every(collection, pre) {
+  // Create a counter to check how many are true.
+  var counter = 0;
+
+  // Check for each object
+  for (var c in collection) {
+    // If it has the same property or the same property value then add 1
+    if (collection[c].hasOwnProperty(pre) || collection[c][pre] == pre) {
+      counter++;
+    }
+  }
+
+  // Outside the loop, check to see if we got true for all of them and return true or false
+  if (counter == collection.length) {
+    return true;
+  } else
+    return false;
+}
+
+every([{'user': 'Tinky-Winky', 'sex': 'male'}, {'user': 'Dipsy', 'sex': 'male'}, {'user': 'Laa-Laa',
+'sex': 'female'}, {'user': 'Po', 'sex': 'female'}], 'sex');
+```
+
+# Code Explanation:
+- First I create a counter to check how many cases are actually true.
+- Then check for each object if it it has the same property or the same property value. If true then add one to the counter.
+- Outside the loop, I check to see if the counter variable has the same value as the length of **collection**, if true then return **true**, otherwise, return **false**
+
+## Alternative Code Solution:
+```js
+function every(collection, pre) {
+  // Does everyone have one of these?
+  return collection.every(function (element, index, array) {
+    return element.hasOwnProperty(pre);
+  });
+}
+
+every([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex");
+```
+# Code Explanation:
+- Uses the native "every" method to test whether all elements in the array pass the test.
+- This link will help [Array.prototype.every()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every)
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282 and @estevanmaito`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Exact-Change.md b/Bonfire-Exact-Change.md
index 112378a..48f9b9d 100644
--- a/Bonfire-Exact-Change.md
+++ b/Bonfire-Exact-Change.md
@@ -1,93 +1,93 @@
-# Problem Explanation:
-- You have to create a program that will handle when the register does not have enough cash or will have no cash after the transaction. Other than that it needs to return an array of the change in the form of an array, so that will be a 2D array.
-
-## Hint: 1
-- Is easier to handle if you will have to close the register or if you will not have enough money to complete the transaction if you know beforehand how much money is on your register. For this it would be recommended to have a function get the information assigned to a variable.
-
-## Hint: 2
-- Life is easier when you get to know the value of each currency type in the register instead of how much money is composed of that particular currency. So be sure to watch out for that.
-
-## Hint: 3
-- You will have to get as much change from one type before moving to the next from greater value to lesser, and keep going until you have covered the whole change.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function drawer(price, cash, cid) {
-
-  // Total Amount to return to client
-  var totalChange = +(cash - price).toFixed(2);
-
-  //Standard currency Value
-  var stdCurr = [0.01, 0.05, 0.10, 0.25, 1, 5, 10, 20, 100];
-
-  //Name of current currency
-  var currType;
-
-  // How many of the current standard currency
-  var stdCurrAmount;
-  var currCurrency;
-
-  // Change to be returned in proper format.
-  var changeArr = [];
-
-  var totalCash = +cid.map(function(money) {
-    // Gets 1D array of values
-    return money[1];
-  }).reduce(function(cash1, cash2) {
-    // Reduces the values to one number
-    return cash1 + cash2;
-
-    // Rounds to two decimal places
-  }).toFixed(2);
-
-  // Handle the case where we don't have enough money or will be left without money.
-  if (totalChange > totalCash) {
-    return 'Insufficient Funds';
-  } else if (totalChange === totalCash) {
-    return 'Closed';
-  }
-
-  // Loops array from right to left.
-  for (var i = +cid.length - 1; i >= 0; i--) {
-    // Gets the monetary value of the current array and the type.
-    currCurrency = +cid[i][1].toFixed(2);
-    currType = cid[i][0];
-
-    //If the currency is less than the change left to hand then get the right amount from the current type of change.
-    if (+stdCurr[i].toFixed(2) <= +totalChange.toFixed(2)) {
-
-      stdCurrAmount = Math.floor(currCurrency / stdCurr[i]);
-
-      if ((stdCurr[i] * stdCurrAmount) >= totalChange) {
-        stdCurrAmount = Math.floor(totalChange / stdCurr[i]);
-      }
-
-      //Get the current currency to use and udate the amount left to hand out.
-      currCurrency = +(stdCurr[i] * stdCurrAmount).toFixed(2);
-      totalChange = +(totalChange - currCurrency).toFixed(2);
-
-      // Update the values so we always have the current amount left in the register.
-      cid[i][1] = currCurrency;
-
-      //Push the change right change to hand out
-      changeArr.push([currType, currCurrency]);
-    }
-  }
-
-  return changeArr;
-};
-```
-
-# Code Explanation:
-- Read comments in code.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
-
+# Problem Explanation:
+- You have to create a program that will handle when the register does not have enough cash or will have no cash after the transaction. Other than that it needs to return an array of the change in the form of an array, so that will be a 2D array.
+
+## Hint: 1
+- Is easier to handle if you will have to close the register or if you will not have enough money to complete the transaction if you know beforehand how much money is on your register. For this it would be recommended to have a function get the information assigned to a variable.
+
+## Hint: 2
+- Life is easier when you get to know the value of each currency type in the register instead of how much money is composed of that particular currency. So be sure to watch out for that.
+
+## Hint: 3
+- You will have to get as much change from one type before moving to the next from greater value to lesser, and keep going until you have covered the whole change.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function drawer(price, cash, cid) {
+
+  // Total Amount to return to client
+  var totalChange = +(cash - price).toFixed(2);
+
+  //Standard currency Value
+  var stdCurr = [0.01, 0.05, 0.10, 0.25, 1, 5, 10, 20, 100];
+
+  //Name of current currency
+  var currType;
+
+  // How many of the current standard currency
+  var stdCurrAmount;
+  var currCurrency;
+
+  // Change to be returned in proper format.
+  var changeArr = [];
+
+  var totalCash = +cid.map(function(money) {
+    // Gets 1D array of values
+    return money[1];
+  }).reduce(function(cash1, cash2) {
+    // Reduces the values to one number
+    return cash1 + cash2;
+
+    // Rounds to two decimal places
+  }).toFixed(2);
+
+  // Handle the case where we don't have enough money or will be left without money.
+  if (totalChange > totalCash) {
+    return 'Insufficient Funds';
+  } else if (totalChange === totalCash) {
+    return 'Closed';
+  }
+
+  // Loops array from right to left.
+  for (var i = +cid.length - 1; i >= 0; i--) {
+    // Gets the monetary value of the current array and the type.
+    currCurrency = +cid[i][1].toFixed(2);
+    currType = cid[i][0];
+
+    //If the currency is less than the change left to hand then get the right amount from the current type of change.
+    if (+stdCurr[i].toFixed(2) <= +totalChange.toFixed(2)) {
+
+      stdCurrAmount = Math.floor(currCurrency / stdCurr[i]);
+
+      if ((stdCurr[i] * stdCurrAmount) >= totalChange) {
+        stdCurrAmount = Math.floor(totalChange / stdCurr[i]);
+      }
+
+      //Get the current currency to use and udate the amount left to hand out.
+      currCurrency = +(stdCurr[i] * stdCurrAmount).toFixed(2);
+      totalChange = +(totalChange - currCurrency).toFixed(2);
+
+      // Update the values so we always have the current amount left in the register.
+      cid[i][1] = currCurrency;
+
+      //Push the change right change to hand out
+      changeArr.push([currType, currCurrency]);
+    }
+  }
+
+  return changeArr;
+};
+```
+
+# Code Explanation:
+- Read comments in code.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
+
 > **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
\ No newline at end of file
diff --git a/Bonfire-Factorialize-a-Number.md b/Bonfire-Factorialize-a-Number.md
index 926ee6f..9020447 100644
--- a/Bonfire-Factorialize-a-Number.md
+++ b/Bonfire-Factorialize-a-Number.md
@@ -1,89 +1,89 @@
-# The problem
-Return the factorial of the provided integer. If the integer is represented with the letter n, a factorial is the product of all positive integers less than or equal to n.
-
-Factorials are often represented with the shorthand notation n!
-
-For example: `5! = 1 * 2 * 3 * 4 * 5 = 120f`
-
-## Analysis
-Return the factorial of the provided integer. If the integer is represented with the letter n, a factorial is the product of all positive integers less than or equal to n. Factorials are often represented with the shorthand notation n! For example: 5! = 1 _ 2 _ 3 _ 4 _ 5 = 120
-
-## Outline
-This one is simple, since the factorials of both 0 and 1 is just 1, you can go ahead and return 1. The IF function here is responsible for breaking the loop I created using a **recursive function**, first it checks if the number you gave the function is 0 or 1 and then returns 1 if the condition passed; since there's no ELSE, the rest of the function is executed.
-
-## Understanding recursion
-Now, I put the references I studied to understand a _little bit_ of how recursion works, and it's when a function repeats itself. The first time I did this challenge I used a short but effective **while loop** but I wanted to make it shorter and more efficient, you know... because of reasons ;). Basically what this does is return the number you gave multiplied by the function itself but this time the value passed to the _num_ parameter is `num-1` which ultimately translates to 4. The very function is going to **run inside itself** haha, funny eh? It's like having functions that run inside themselves until they reach a very deep level (depends on how many times it runs itself).
-
-## Visualizing the flow
-![Recursion](http://i61.tinypic.com/28auvsw.jpg)
-
-The first **returned** value can be visualized better if you think about those parenthesis operations you did in secondary school where you do the math inside every parenthesis, bracket and square bracket until you get a final result (a total). This time it's the same thing, look at the program flow:
-
-## During the first execution of the function:
-[**num** = 5]
-
-Is 5 _equal_ to 1 or 0? **No** ---> Oki doki, let's continue...
-
-**Returns:**
-
-(**5** _ (_second execution_: **4** _ (_third execution_: **3** _ (_fourth execution_: **2** _ _fifth execution_: **1**))))
-
-What it returns can be viewed as `(5*(4*(3*(2*1))))` or just `5 * 4 * 3 * 2 * 1`, and the function will return the result of that operation: `120`. Now, let's check what the rest of the executions do:
-
-## During the rest of the executions:
-- **Second Execution**: _num_ = 5-1 = **4** -> is _num_ 0 or 1? No --> return the multiplication between 4 and the next result when _num_ is now 4-1.
-- **Third Execution**: _num_ = 4 - 1 = **3** -> is _num_ 0 or 1? No --> return the multiplication between 3 and the next result when _num_ is now 3-1.
-- **Fourth Execution**: _num_ = 3-1 = **2** -> is _num_ 0 or 1? No --> return the multiplication between 2 and the next result when _num_ is now 2-1.
-- **Fifth Execution**: _num_ = 2-1 = **1** -> is _num_ 0 or 1? Yep --> return **1**. And this is where the recursion stops because there are no more executions.
-
-## :construction: My Solution is coming up!
-Don't scroll down if you don't want to see it!
-
-![warning](http://www.yourdrum.com/yourdrum/images/2007/10/10/red_warning_sign_2.gif)        
-
-```
-           ,,,         ,,,
-          ;"   ^;     ;'   ",
-          ;    s$$$$$$$s     ;
-          ,  ss$$$$$$$$$$s  ,'
-          ;s$$$$$$$$$$$$$$$
-          $$$$$$$$$$$$$$$$$$
-         $$$$P""Y$$$Y""W$$$$$      -{ Happy Camping! }
-         $$$$  p"$$$"q  $$$$$
-         $$$$  .$$$$$.  $$$$
-          $$DcaU$$$$$$$$$$
-            "Y$$$"*"$$$Y"    
-                "$b.$$"
-```
-
-## Code Solution:
-
-```javascript
-function factorialize(num) {
-  if (num === 0 || num == 1) { return 1; }
-  return num * factorialize(num-1);
-}
-
-factorialize(5);
-```
-
-```javascript
-function factorialize(num) {
-  var factorial = 1;
-  for (var n = 2; n <= num; n++) {
-    factorial = factorial * n;
-  }
-
-  return factorial;
-}
-```
-
-# References
-- **Recursion**: [https://www.codecademy.com/es/courses/javascript-lesson-205/0/1](https://www.codecademy.com/es/courses/javascript-lesson-205/0/1)
-- **Factorialization**: [https://en.wikipedia.org/wiki/Factorial](https://en.wikipedia.org/wiki/Factorial)
-- [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators)
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @ luishendrix92 @Rafase282`
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# The problem
+Return the factorial of the provided integer. If the integer is represented with the letter n, a factorial is the product of all positive integers less than or equal to n.
+
+Factorials are often represented with the shorthand notation n!
+
+For example: `5! = 1 * 2 * 3 * 4 * 5 = 120f`
+
+## Analysis
+Return the factorial of the provided integer. If the integer is represented with the letter n, a factorial is the product of all positive integers less than or equal to n. Factorials are often represented with the shorthand notation n! For example: 5! = 1 _ 2 _ 3 _ 4 _ 5 = 120
+
+## Outline
+This one is simple, since the factorials of both 0 and 1 is just 1, you can go ahead and return 1. The IF function here is responsible for breaking the loop I created using a **recursive function**, first it checks if the number you gave the function is 0 or 1 and then returns 1 if the condition passed; since there's no ELSE, the rest of the function is executed.
+
+## Understanding recursion
+Now, I put the references I studied to understand a _little bit_ of how recursion works, and it's when a function repeats itself. The first time I did this challenge I used a short but effective **while loop** but I wanted to make it shorter and more efficient, you know... because of reasons ;). Basically what this does is return the number you gave multiplied by the function itself but this time the value passed to the _num_ parameter is `num-1` which ultimately translates to 4. The very function is going to **run inside itself** haha, funny eh? It's like having functions that run inside themselves until they reach a very deep level (depends on how many times it runs itself).
+
+## Visualizing the flow
+![Recursion](http://i61.tinypic.com/28auvsw.jpg)
+
+The first **returned** value can be visualized better if you think about those parenthesis operations you did in secondary school where you do the math inside every parenthesis, bracket and square bracket until you get a final result (a total). This time it's the same thing, look at the program flow:
+
+## During the first execution of the function:
+[**num** = 5]
+
+Is 5 _equal_ to 1 or 0? **No** ---> Oki doki, let's continue...
+
+**Returns:**
+
+(**5** _ (_second execution_: **4** _ (_third execution_: **3** _ (_fourth execution_: **2** _ _fifth execution_: **1**))))
+
+What it returns can be viewed as `(5*(4*(3*(2*1))))` or just `5 * 4 * 3 * 2 * 1`, and the function will return the result of that operation: `120`. Now, let's check what the rest of the executions do:
+
+## During the rest of the executions:
+- **Second Execution**: _num_ = 5-1 = **4** -> is _num_ 0 or 1? No --> return the multiplication between 4 and the next result when _num_ is now 4-1.
+- **Third Execution**: _num_ = 4 - 1 = **3** -> is _num_ 0 or 1? No --> return the multiplication between 3 and the next result when _num_ is now 3-1.
+- **Fourth Execution**: _num_ = 3-1 = **2** -> is _num_ 0 or 1? No --> return the multiplication between 2 and the next result when _num_ is now 2-1.
+- **Fifth Execution**: _num_ = 2-1 = **1** -> is _num_ 0 or 1? Yep --> return **1**. And this is where the recursion stops because there are no more executions.
+
+## :construction: My Solution is coming up!
+Don't scroll down if you don't want to see it!
+
+![warning](http://www.yourdrum.com/yourdrum/images/2007/10/10/red_warning_sign_2.gif)        
+
+```
+           ,,,         ,,,
+          ;"   ^;     ;'   ",
+          ;    s$$$$$$$s     ;
+          ,  ss$$$$$$$$$$s  ,'
+          ;s$$$$$$$$$$$$$$$
+          $$$$$$$$$$$$$$$$$$
+         $$$$P""Y$$$Y""W$$$$$      -{ Happy Camping! }
+         $$$$  p"$$$"q  $$$$$
+         $$$$  .$$$$$.  $$$$
+          $$DcaU$$$$$$$$$$
+            "Y$$$"*"$$$Y"    
+                "$b.$$"
+```
+
+## Code Solution:
+
+```javascript
+function factorialize(num) {
+  if (num === 0 || num == 1) { return 1; }
+  return num * factorialize(num-1);
+}
+
+factorialize(5);
+```
+
+```javascript
+function factorialize(num) {
+  var factorial = 1;
+  for (var n = 2; n <= num; n++) {
+    factorial = factorial * n;
+  }
+
+  return factorial;
+}
+```
+
+# References
+- **Recursion**: [https://www.codecademy.com/es/courses/javascript-lesson-205/0/1](https://www.codecademy.com/es/courses/javascript-lesson-205/0/1)
+- **Factorialization**: [https://en.wikipedia.org/wiki/Factorial](https://en.wikipedia.org/wiki/Factorial)
+- [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators)
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @ luishendrix92 @Rafase282`
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Falsy-Bouncer.md b/Bonfire-Falsy-Bouncer.md
index 1d3a224..a655970 100644
--- a/Bonfire-Falsy-Bouncer.md
+++ b/Bonfire-Falsy-Bouncer.md
@@ -1,48 +1,48 @@
-![](http://i.imgur.com/GluUbAz.jpg)
-
-# Problem Explanation:
-Remove all [falsy](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-falsy) values from an array.
-
-## Hint: 1
-Falsy is something which evaluates to FALSE. There are only six falsy values in JavaScript: undefined, null, NaN, 0, "" (empty string), and false of course.
-
-## Hint: 2
-We need to make sure we have all the falsy values to compare, we can know it, maybe with a function with all the falsy values...
-
-## Hint: 3
-Then we need to add a `filter()` with the falsy values function...
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Solution Code:
-
-```js
-function bouncer(arr) {
-  // Don't show a false ID to this bouncer.
-  // I've a hammer fist.
-
-  return arr.filter(Boolean);
-}
-```
-
-```js
-function bouncer(arr) {
-  function isTruthy(arg) {
-    return Boolean(arg);
-  }
-
-  var filteredArray = arr.filter(isTruthy);
-  return filteredArray;
-}
-```
-
-# Code Explanation:
-The `Array.prototype.filter` method expects a function that returns a `Boolean` value which takes a single argument and returns `true` for [truthy](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-truthy) value or `false` for [falsy](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-falsy) value. Hence we pass the built-in `Boolean` function.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @renelis @abhisekp @Rafase282`
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+![](http://i.imgur.com/GluUbAz.jpg)
+
+# Problem Explanation:
+Remove all [falsy](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-falsy) values from an array.
+
+## Hint: 1
+Falsy is something which evaluates to FALSE. There are only six falsy values in JavaScript: undefined, null, NaN, 0, "" (empty string), and false of course.
+
+## Hint: 2
+We need to make sure we have all the falsy values to compare, we can know it, maybe with a function with all the falsy values...
+
+## Hint: 3
+Then we need to add a `filter()` with the falsy values function...
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Solution Code:
+
+```js
+function bouncer(arr) {
+  // Don't show a false ID to this bouncer.
+  // I've a hammer fist.
+
+  return arr.filter(Boolean);
+}
+```
+
+```js
+function bouncer(arr) {
+  function isTruthy(arg) {
+    return Boolean(arg);
+  }
+
+  var filteredArray = arr.filter(isTruthy);
+  return filteredArray;
+}
+```
+
+# Code Explanation:
+The `Array.prototype.filter` method expects a function that returns a `Boolean` value which takes a single argument and returns `true` for [truthy](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-truthy) value or `false` for [falsy](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-falsy) value. Hence we pass the built-in `Boolean` function.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @renelis @abhisekp @Rafase282`
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Friendly-Date-Ranges.md b/Bonfire-Friendly-Date-Ranges.md
index 294d432..7c902f0 100644
--- a/Bonfire-Friendly-Date-Ranges.md
+++ b/Bonfire-Friendly-Date-Ranges.md
@@ -1,101 +1,101 @@
-# Problem Explanation:
-- Create a program that will take two dates and convert them into a more easy to understand date such as `January 1st, 2017`. It will also check the difference between them, and handles cases with no difference, more than a day, more than a month, more than a year, and more than a month and less than a year respectively.
-
-## Hint: 1
-- Split the string into an array where you get the "YYYY", "MM", "DD"
-
-## Hint: 2
-- You need to handle the case for "st", "nd", and "th". Note that 13 is "th" not "rd".
-
-## Hint: 3
-- If you are using `Date()` to create instances of dates to work with, then use UTC time to avoid errors due to time zone difference between servers.
-
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function friendly(str) {
-
-  var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
-
-  // COnverst a YYYY-MM-DD string into a date object.
-  function convertDate(str) {
-    // Split the dates to work independently.
-    var dateStr = str.split('-');
-
-    // Force the dates into Universal time to avoid issues due to timezones.
-    return (new Date(Date.UTC(dateStr[0], dateStr[1] - 1, dateStr[2])));
-
-  }
-
-  // Handles the case of the day's endings.
-  function dateEnding(val) {
-    switch (val) {
-      case 1:
-      case 21:
-      case 31:
-        return val + 'st';
-      case 2:
-      case 22:
-        return val + 'nd';
-      case 3:
-      case 23:
-        return val + 'rd';
-      default:
-        return val + 'th';
-    }
-  }
-
-  // Checks for the real difference in months to avoid errors
-  function monthDiff(date1, date2) {
-    var month2 = date2.getUTCFullYear() * 12 + date2.getUTCMonth();
-    var month1 = date1.getUTCFullYear() * 12 + date1.getUTCMonth();
-    return month2 - month1;
-  }
-
-  // Get's the right month string.
-  function getMonth(date) {
-    return months[date.getUTCMonth()];
-  }
-
-  function displayDate() {
-
-    // Handles same day
-    if (date2.getTime() - date1.getTime() === 0) {
-      return [getMonth(date1) + ' ' + dateEnding(date1.getUTCDate()) + ', ' + date1.getUTCFullYear()];
-    }
-
-    // Handles same month
-    if (date1.getUTCMonth() === date2.getUTCMonth() && date1.getUTCFullYear() === date2.getUTCFullYear()) {
-      return [getMonth(date1) + ' ' + dateEnding(date1.getUTCDate()), dateEnding(date2.getUTCDate())];
-    }
-
-    // Handles more than a month of difference, but less than 12 months
-    if (monthDiff(date1, date2) < 12) {
-      return [getMonth(date1) + ' ' + dateEnding(date1.getUTCDate()), getMonth(date2) + ' ' + dateEnding(date2.getUTCDate())];
-    }
-
-    // Handles cases with more than 12 months apaprt.
-    return [getMonth(date1) + ' ' + dateEnding(date1.getUTCDate()) + ', ' + date1.getUTCFullYear(), getMonth(date2) + ' ' + dateEnding(date2.getUTCDate()) + ', ' + date2.getUTCFullYear()];
-  }
-
-  var date1 = convertDate(str[0]);
-  var date2 = convertDate(str[1]);
-
-  return displayDate();
-
-}
-```
-
-# Code Explanation:
-- Read comments in code
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282 @guyjoseph`**
-
+# Problem Explanation:
+- Create a program that will take two dates and convert them into a more easy to understand date such as `January 1st, 2017`. It will also check the difference between them, and handles cases with no difference, more than a day, more than a month, more than a year, and more than a month and less than a year respectively.
+
+## Hint: 1
+- Split the string into an array where you get the "YYYY", "MM", "DD"
+
+## Hint: 2
+- You need to handle the case for "st", "nd", and "th". Note that 13 is "th" not "rd".
+
+## Hint: 3
+- If you are using `Date()` to create instances of dates to work with, then use UTC time to avoid errors due to time zone difference between servers.
+
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function friendly(str) {
+
+  var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
+
+  // COnverst a YYYY-MM-DD string into a date object.
+  function convertDate(str) {
+    // Split the dates to work independently.
+    var dateStr = str.split('-');
+
+    // Force the dates into Universal time to avoid issues due to timezones.
+    return (new Date(Date.UTC(dateStr[0], dateStr[1] - 1, dateStr[2])));
+
+  }
+
+  // Handles the case of the day's endings.
+  function dateEnding(val) {
+    switch (val) {
+      case 1:
+      case 21:
+      case 31:
+        return val + 'st';
+      case 2:
+      case 22:
+        return val + 'nd';
+      case 3:
+      case 23:
+        return val + 'rd';
+      default:
+        return val + 'th';
+    }
+  }
+
+  // Checks for the real difference in months to avoid errors
+  function monthDiff(date1, date2) {
+    var month2 = date2.getUTCFullYear() * 12 + date2.getUTCMonth();
+    var month1 = date1.getUTCFullYear() * 12 + date1.getUTCMonth();
+    return month2 - month1;
+  }
+
+  // Get's the right month string.
+  function getMonth(date) {
+    return months[date.getUTCMonth()];
+  }
+
+  function displayDate() {
+
+    // Handles same day
+    if (date2.getTime() - date1.getTime() === 0) {
+      return [getMonth(date1) + ' ' + dateEnding(date1.getUTCDate()) + ', ' + date1.getUTCFullYear()];
+    }
+
+    // Handles same month
+    if (date1.getUTCMonth() === date2.getUTCMonth() && date1.getUTCFullYear() === date2.getUTCFullYear()) {
+      return [getMonth(date1) + ' ' + dateEnding(date1.getUTCDate()), dateEnding(date2.getUTCDate())];
+    }
+
+    // Handles more than a month of difference, but less than 12 months
+    if (monthDiff(date1, date2) < 12) {
+      return [getMonth(date1) + ' ' + dateEnding(date1.getUTCDate()), getMonth(date2) + ' ' + dateEnding(date2.getUTCDate())];
+    }
+
+    // Handles cases with more than 12 months apaprt.
+    return [getMonth(date1) + ' ' + dateEnding(date1.getUTCDate()) + ', ' + date1.getUTCFullYear(), getMonth(date2) + ' ' + dateEnding(date2.getUTCDate()) + ', ' + date2.getUTCFullYear()];
+  }
+
+  var date1 = convertDate(str[0]);
+  var date2 = convertDate(str[1]);
+
+  return displayDate();
+
+}
+```
+
+# Code Explanation:
+- Read comments in code
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282 @guyjoseph`**
+
 > **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
\ No newline at end of file
diff --git a/Bonfire-Map-the-Debris.md b/Bonfire-Map-the-Debris.md
index a300fda..525c269 100644
--- a/Bonfire-Map-the-Debris.md
+++ b/Bonfire-Map-the-Debris.md
@@ -1,59 +1,59 @@
-![](http://i.imgur.com/jSJ4E7L.jpg)
-
-# Problem Explanation:
-The first thing to do is to get familiar with what the program is for, for this I would suggest you check the Wikipedia link as that is very important and from where you can also get the formula for the conversion. The hardest part are finding the formula, implementing it and for some modifying objects by the key. However, something that is not very clear is the fact that your program has to be able to check for any number of objects in the array which is what is tested on the second part.
-
-## Hint: 1
-The formula needed is: T = 2_pi _ sqrt(earthRadius + avgAlt to the cube / GM)
-
-## Hint: 2
-Use Math.round() to round up to the next whole number as requested. Using Math.ceil() will let you pass the first test but fail the second one.
-
-## Hint: 3
-Find out how to remove and add key to an object
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function orbitalPeriod(arr) {
-  var GM = 398600.4418;
-  var earthRadius = 6367.4447;
-  var a = 2 * Math.PI;
-  var newArr = [];
-  var getOrbPeriod = function(obj) {
-    var c = Math.pow(earthRadius + obj.avgAlt, 3);
-    var b = Math.sqrt(c / GM);
-    var orbPeriod = Math.round(a * b);
-    delete obj.avgAlt;
-    obj.orbitalPeriod = orbPeriod;
-    return obj;
-  };
-
-  for (var elem in arr) {
-    newArr.push(getOrbPeriod(arr[elem]));
-  }
-
-  return newArr;
-}
-```
-
-# Code Explanation:
-- The GM and `earthRadius` is given to us.
-- To make the code easier to edit and read, I separated each part of the equation.
-- Create a new array to store the `orbPeriods`.
-- a is 2 times pi. The part that is a constant is on the global scope while the rest is part of a function.
-- Create a function that will do the required work for any amount of objects.
-- c is the power of `earthRadius` + the value of `avgAlt` to the cube.
-- b is the square root of c divided by GM.
-- Create `orbPeriod` to store the product of a & b, with the ceiling function applied to round up to the next whole number.
-- Then we delete the key`avgAlt`, and add the new key and its value.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+![](http://i.imgur.com/jSJ4E7L.jpg)
+
+# Problem Explanation:
+The first thing to do is to get familiar with what the program is for, for this I would suggest you check the Wikipedia link as that is very important and from where you can also get the formula for the conversion. The hardest part are finding the formula, implementing it and for some modifying objects by the key. However, something that is not very clear is the fact that your program has to be able to check for any number of objects in the array which is what is tested on the second part.
+
+## Hint: 1
+The formula needed is: T = 2_pi _ sqrt(earthRadius + avgAlt to the cube / GM)
+
+## Hint: 2
+Use Math.round() to round up to the next whole number as requested. Using Math.ceil() will let you pass the first test but fail the second one.
+
+## Hint: 3
+Find out how to remove and add key to an object
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function orbitalPeriod(arr) {
+  var GM = 398600.4418;
+  var earthRadius = 6367.4447;
+  var a = 2 * Math.PI;
+  var newArr = [];
+  var getOrbPeriod = function(obj) {
+    var c = Math.pow(earthRadius + obj.avgAlt, 3);
+    var b = Math.sqrt(c / GM);
+    var orbPeriod = Math.round(a * b);
+    delete obj.avgAlt;
+    obj.orbitalPeriod = orbPeriod;
+    return obj;
+  };
+
+  for (var elem in arr) {
+    newArr.push(getOrbPeriod(arr[elem]));
+  }
+
+  return newArr;
+}
+```
+
+# Code Explanation:
+- The GM and `earthRadius` is given to us.
+- To make the code easier to edit and read, I separated each part of the equation.
+- Create a new array to store the `orbPeriods`.
+- a is 2 times pi. The part that is a constant is on the global scope while the rest is part of a function.
+- Create a function that will do the required work for any amount of objects.
+- c is the power of `earthRadius` + the value of `avgAlt` to the cube.
+- b is the square root of c divided by GM.
+- Create `orbPeriod` to store the product of a & b, with the ceiling function applied to round up to the next whole number.
+- Then we delete the key`avgAlt`, and add the new key and its value.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Meet-Bonfire.md b/Bonfire-Meet-Bonfire.md
index 36eb60d..df635f2 100644
--- a/Bonfire-Meet-Bonfire.md
+++ b/Bonfire-Meet-Bonfire.md
@@ -1,37 +1,37 @@
-# Explanation:
-This is very simple, they just want you to get familiar with how their Bonfires work.
-
-## Hint: 1
-Read details.
-
-## Hint: 2
-Did you read all the details?
-
-## Hint: 3
-You need to change the return statement to what they ask.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function meetBonfire(argument) {
-  // Good luck!
-  console.log("you can read this function's argument in the developer tools", argument);
-
-  return true;
-}
-
-meetBonfire("You can do this!");
-```
-
-# Code Explanation:
-All you had to do was change from false to true.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282`
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Explanation:
+This is very simple, they just want you to get familiar with how their Bonfires work.
+
+## Hint: 1
+Read details.
+
+## Hint: 2
+Did you read all the details?
+
+## Hint: 3
+You need to change the return statement to what they ask.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function meetBonfire(argument) {
+  // Good luck!
+  console.log("you can read this function's argument in the developer tools", argument);
+
+  return true;
+}
+
+meetBonfire("You can do this!");
+```
+
+# Code Explanation:
+All you had to do was change from false to true.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282`
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Missing-letters.md b/Bonfire-Missing-letters.md
index 142592a..faa165f 100644
--- a/Bonfire-Missing-letters.md
+++ b/Bonfire-Missing-letters.md
@@ -1,86 +1,86 @@
-# Problem Explanation:
-- You will create a program that will find the missing letter from a string and add it. If there is not missing letter it will return undefined. There is currently no test case for it missing more than one letter, but if anything recursion can be implemented or a second or more calls to the same function as needed. Also the letters are always provided in order so there is no need to sort them.
-
-## Hint: 1
-- You will need to convert from character to ASCII code using the two methods provided in the description.
-
-## Hint: 2
-- You will have to check for the difference in ASCII code as they are in order. Using a chart would be very helpful.
-
-## Hint: 3
-- You will need to figure out where to insert the letter and how to do it, along with handling the case that there is not missing letter as it needs an specific return value.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-First:
-
-```js
-function fearNotLetter(str) {
-  // Create our variables.
-  var firstCharacter = str.charCodeAt(0);
-  var valueToReturn = '';
-  var secondCharacter = '';
-
-  // Function to find the missing letters
-  var addCharacters = function(a, b) {
-    while (a - 1 > b) {
-      b++;
-      valueToReturn += String.fromCharCode(b);
-    }
-
-    return valueToReturn;
-  };
-
-  // Check if letters are missing in between.
-  for (var index = 1; index < str.length; index++) {
-    secondCharacter = str.charCodeAt(index);
-
-    // Check if the diference in code is greater than one.
-    if (secondCharacter - firstCharacter > 1) {
-      // Call function to missing letters
-      addCharacters(secondCharacter, firstCharacter);
-    }
-
-    // Switch positions
-    firstCharacter = str.charCodeAt(index);
-  }
-
-  // Check whether to return undefined or the missing letters.
-  if (valueToReturn === '')
-    return undefined;
-  else
-    return valueToReturn;
-}
-```
-```js
-Second:
-
-function fearNotLetter(str) {
-  
-  for(var i = 0; i < str.length; i++) {
-    /* code of current character */
-    var code = str.charCodeAt(i);
-    /* if code of current character is not equal to first charcter + no of iteration
-    hence character has been escaped*/
-    if ( code !== str.charCodeAt(0) + i) {
-      /* if current character has escaped one character find previous char and return*/
-      return String.fromCharCode(code-1);
-    }  
-  }
-  return undefined;
-}
-```
-
-
-# Code Explanation:
-- Read comments in code.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
-**`thanks @rohitnwn`**
-
+# Problem Explanation:
+- You will create a program that will find the missing letter from a string and add it. If there is not missing letter it will return undefined. There is currently no test case for it missing more than one letter, but if anything recursion can be implemented or a second or more calls to the same function as needed. Also the letters are always provided in order so there is no need to sort them.
+
+## Hint: 1
+- You will need to convert from character to ASCII code using the two methods provided in the description.
+
+## Hint: 2
+- You will have to check for the difference in ASCII code as they are in order. Using a chart would be very helpful.
+
+## Hint: 3
+- You will need to figure out where to insert the letter and how to do it, along with handling the case that there is not missing letter as it needs an specific return value.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+First:
+
+```js
+function fearNotLetter(str) {
+  // Create our variables.
+  var firstCharacter = str.charCodeAt(0);
+  var valueToReturn = '';
+  var secondCharacter = '';
+
+  // Function to find the missing letters
+  var addCharacters = function(a, b) {
+    while (a - 1 > b) {
+      b++;
+      valueToReturn += String.fromCharCode(b);
+    }
+
+    return valueToReturn;
+  };
+
+  // Check if letters are missing in between.
+  for (var index = 1; index < str.length; index++) {
+    secondCharacter = str.charCodeAt(index);
+
+    // Check if the diference in code is greater than one.
+    if (secondCharacter - firstCharacter > 1) {
+      // Call function to missing letters
+      addCharacters(secondCharacter, firstCharacter);
+    }
+
+    // Switch positions
+    firstCharacter = str.charCodeAt(index);
+  }
+
+  // Check whether to return undefined or the missing letters.
+  if (valueToReturn === '')
+    return undefined;
+  else
+    return valueToReturn;
+}
+```
+```js
+Second:
+
+function fearNotLetter(str) {
+  
+  for(var i = 0; i < str.length; i++) {
+    /* code of current character */
+    var code = str.charCodeAt(i);
+    /* if code of current character is not equal to first charcter + no of iteration
+    hence character has been escaped*/
+    if ( code !== str.charCodeAt(0) + i) {
+      /* if current character has escaped one character find previous char and return*/
+      return String.fromCharCode(code-1);
+    }  
+  }
+  return undefined;
+}
+```
+
+
+# Code Explanation:
+- Read comments in code.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
+**`thanks @rohitnwn`**
+
 > **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
\ No newline at end of file
diff --git a/Bonfire-Pig-Latin.md b/Bonfire-Pig-Latin.md
index 05b92db..99349c9 100644
--- a/Bonfire-Pig-Latin.md
+++ b/Bonfire-Pig-Latin.md
@@ -1,46 +1,46 @@
-# Problem Explanation:
-- You need to create a program that will translate from English to Pig Latin. Check the instructions for converting to Pig Latin from the initial description or the wiki page. It might not be obvious but you need to remove all the consonants up to the first vowel in the case there letter does not start with a vowel.
-
-## Hint: 1
-- You will probably want to use regular expressions. This will allow you to convert the words easily.
-
-## Hint: 2
-- If the first character is a vowel, then take that whole word and add 'way' at the end. Otherwise comes the tricky part, take the consonant(s) before the first vowel and move it to the end and add 'ay'. This is where I had trouble since it was not clear that it was not just the first consonant but all of them before the first vowel.
-
-## Hint: 3
-- You will need to use everything you know about string manipulation to get the last part right. However, it can be done with `substr` alone.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function translate(str) {
-  // Create variables to be used
-  var pigLatin = '';
-  var regex = /[aeiou]/gi;
-  // Check if the first character is a vowel
-  if (str[0].match(regex)) {
-    pigLatin = str + 'way';
-  } else {
-    // Find how many consonants before the firs vowel.
-    var vowelIndice = str.indexOf(str.match(regex)[0]);
-    // Take the string from the first vowel to the last char
-    // then add the consonants that were previously omitted and add the ending.
-    pigLatin = str.substr(vowelIndice) + str.substr(0, vowelIndice) + 'ay';
-  }
-
-  return pigLatin;
-}
-```
-
-# Code Explanation:
-- Read comments on code.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Problem Explanation:
+- You need to create a program that will translate from English to Pig Latin. Check the instructions for converting to Pig Latin from the initial description or the wiki page. It might not be obvious but you need to remove all the consonants up to the first vowel in the case there letter does not start with a vowel.
+
+## Hint: 1
+- You will probably want to use regular expressions. This will allow you to convert the words easily.
+
+## Hint: 2
+- If the first character is a vowel, then take that whole word and add 'way' at the end. Otherwise comes the tricky part, take the consonant(s) before the first vowel and move it to the end and add 'ay'. This is where I had trouble since it was not clear that it was not just the first consonant but all of them before the first vowel.
+
+## Hint: 3
+- You will need to use everything you know about string manipulation to get the last part right. However, it can be done with `substr` alone.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function translate(str) {
+  // Create variables to be used
+  var pigLatin = '';
+  var regex = /[aeiou]/gi;
+  // Check if the first character is a vowel
+  if (str[0].match(regex)) {
+    pigLatin = str + 'way';
+  } else {
+    // Find how many consonants before the firs vowel.
+    var vowelIndice = str.indexOf(str.match(regex)[0]);
+    // Take the string from the first vowel to the last char
+    // then add the consonants that were previously omitted and add the ending.
+    pigLatin = str.substr(vowelIndice) + str.substr(0, vowelIndice) + 'ay';
+  }
+
+  return pigLatin;
+}
+```
+
+# Code Explanation:
+- Read comments on code.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Return-Largest-Numbers-in-Arrays.md b/Bonfire-Return-Largest-Numbers-in-Arrays.md
index b05eb7a..8731aee 100644
--- a/Bonfire-Return-Largest-Numbers-in-Arrays.md
+++ b/Bonfire-Return-Largest-Numbers-in-Arrays.md
@@ -1,95 +1,95 @@
-# Explanation:
-You will get an array that contains sub arrays of numbers and you need to return an array with the largest number from each of the sub arrays.
-
-## Hint: 1
-You will need to keep track of the array with the answer and the largest number of each sub-array.
-
-## Hint: 2
-You can work with multidimensional arrays by `Array[Index][SubIndex]`
-
-## Hint: 3
-Pay close attention to the timing of the storing of variables when working with loops
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solutions ahead!**
-
-## Solution 1:
-
-```js
-function largestOfFour(arr) {
-  var results = [];
-  for (var n = 0; n < arr.length; n++) {
-    var largestNumber = 0;
-    for (var sb = 0; sb < arr[n].length; sb++) {
-      if (arr[n][sb] > largestNumber) {
-        largestNumber = arr[n][sb];
-      }
-    }
-
-    results[n] = largestNumber;
-  }
-
-  return results;
-}
-```
-
-# Code Explanation:
-- Create a variable to store the results as an array.
-- Create an outer loop to iterate through the main array.
-- Before going into the inner loop, create a variable to hold the largest number. This must be outside the inner loop.
-- Create another for loop to work with the sub-arrays.
-- Check if the element of the sub array is larger than the current largest number. If so, then save the number.
-- After the inner loop, save the largest number in the variable for the results.
-
-## Solution 2:
-
-```js
-function largestOfFour(arr) {
-  // You can do this!
-  // Yes, I can. :P
-  return arr.map(Function.apply.bind(Math.max, null));
-}
-
-largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
-```
-
-# Code Explanation:
-- The `Function.apply.bind(Math.max, null)` makes a new function accepting the `arr.map` values i.e. the inner arrays.
-
-Now the new function needs to find the max of the input inner array.
-- So we want to create a function that does the work of `Math.max` and accepts input as an array.
-
-e.g. wouldn't be nice if the `Math.max` would be accepting inputs like this:   
-`Math.max([9, 43, 20, 6]); // 43`.
-- To do the work of accepting params as array, there is this `Function.apply` method but it *invokes* the *context* function.
-
-i.e. `Math.max.apply(null, [9, 43, 20, 6]); // 43` would invoke the `Max.max` method. 
-
-> Here we're passing `null` as the *context* of the `Function.apply` method as `Math.max` doesn't need any context.
-
-But that's not useful for `arr.map` which accepts a function value. So we create a function value using `Function.bind` method. 
-- Since, `Function.apply` is a static *method* of `Function` Object, so we can call `Function.prototype.bind` on `Function.apply` i.e. `Function.apply.bind`.
-
-Now we pass the *context* for `Function.apply.bind` call i.e. `Math.max` method as the 1st argument which would give us the functionality of `Math.max` method.
-- Since `Function.apply` method takes a context as it's 1st argument, hence, we need to pass a bogus *context* for `Function.apply` method.
-  - So, we pass `null` as the 2nd param to `Function.apply.bind` which gives a *context* to the `Math.max` method.
-  - Since, `Math.max` is independent of any *context*, hence, it ignores the bogus *context* given by `Function.apply` method call. 
-
-**So in the end we get a function (using `Function.bind` method) that works like `Math.max` but accepts params as an array like `Function.apply`** :smiley: 
-
-*comprendido*? :neutral_face:
-
-> NOTE: This is an advanced solution. NOT FOR BEGINNERS.
-
-**Reference:-**
-- http://devdocs.io/#q=js+Math+max
-- http://devdocs.io/#q=js+Array+map
-- http://devdocs.io/#q=js+Function+apply
-- http://devdocs.io/#q=js+Function+bind
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282 @abhisekp`
-
+# Explanation:
+You will get an array that contains sub arrays of numbers and you need to return an array with the largest number from each of the sub arrays.
+
+## Hint: 1
+You will need to keep track of the array with the answer and the largest number of each sub-array.
+
+## Hint: 2
+You can work with multidimensional arrays by `Array[Index][SubIndex]`
+
+## Hint: 3
+Pay close attention to the timing of the storing of variables when working with loops
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solutions ahead!**
+
+## Solution 1:
+
+```js
+function largestOfFour(arr) {
+  var results = [];
+  for (var n = 0; n < arr.length; n++) {
+    var largestNumber = 0;
+    for (var sb = 0; sb < arr[n].length; sb++) {
+      if (arr[n][sb] > largestNumber) {
+        largestNumber = arr[n][sb];
+      }
+    }
+
+    results[n] = largestNumber;
+  }
+
+  return results;
+}
+```
+
+# Code Explanation:
+- Create a variable to store the results as an array.
+- Create an outer loop to iterate through the main array.
+- Before going into the inner loop, create a variable to hold the largest number. This must be outside the inner loop.
+- Create another for loop to work with the sub-arrays.
+- Check if the element of the sub array is larger than the current largest number. If so, then save the number.
+- After the inner loop, save the largest number in the variable for the results.
+
+## Solution 2:
+
+```js
+function largestOfFour(arr) {
+  // You can do this!
+  // Yes, I can. :P
+  return arr.map(Function.apply.bind(Math.max, null));
+}
+
+largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
+```
+
+# Code Explanation:
+- The `Function.apply.bind(Math.max, null)` makes a new function accepting the `arr.map` values i.e. the inner arrays.
+
+Now the new function needs to find the max of the input inner array.
+- So we want to create a function that does the work of `Math.max` and accepts input as an array.
+
+e.g. wouldn't be nice if the `Math.max` would be accepting inputs like this:   
+`Math.max([9, 43, 20, 6]); // 43`.
+- To do the work of accepting params as array, there is this `Function.apply` method but it *invokes* the *context* function.
+
+i.e. `Math.max.apply(null, [9, 43, 20, 6]); // 43` would invoke the `Max.max` method. 
+
+> Here we're passing `null` as the *context* of the `Function.apply` method as `Math.max` doesn't need any context.
+
+But that's not useful for `arr.map` which accepts a function value. So we create a function value using `Function.bind` method. 
+- Since, `Function.apply` is a static *method* of `Function` Object, so we can call `Function.prototype.bind` on `Function.apply` i.e. `Function.apply.bind`.
+
+Now we pass the *context* for `Function.apply.bind` call i.e. `Math.max` method as the 1st argument which would give us the functionality of `Math.max` method.
+- Since `Function.apply` method takes a context as it's 1st argument, hence, we need to pass a bogus *context* for `Function.apply` method.
+  - So, we pass `null` as the 2nd param to `Function.apply.bind` which gives a *context* to the `Math.max` method.
+  - Since, `Math.max` is independent of any *context*, hence, it ignores the bogus *context* given by `Function.apply` method call. 
+
+**So in the end we get a function (using `Function.bind` method) that works like `Math.max` but accepts params as an array like `Function.apply`** :smiley: 
+
+*comprendido*? :neutral_face:
+
+> NOTE: This is an advanced solution. NOT FOR BEGINNERS.
+
+**Reference:-**
+- http://devdocs.io/#q=js+Math+max
+- http://devdocs.io/#q=js+Array+map
+- http://devdocs.io/#q=js+Function+apply
+- http://devdocs.io/#q=js+Function+bind
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282 @abhisekp`
+
 > **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
\ No newline at end of file
diff --git a/Bonfire-Reverse-a-String.md b/Bonfire-Reverse-a-String.md
index e0d57e3..3d6380f 100644
--- a/Bonfire-Reverse-a-String.md
+++ b/Bonfire-Reverse-a-String.md
@@ -1,33 +1,33 @@
-# Problem Explanation:
-You need to take the string and reverse it so if you had originally 'hello', it will turn into 'olleh'. Because you will need to split it, you will be working with Arrays too.
-
-## Hint: 1
-- You should split the string by characters.
-
-## Hint: 2
-- Find out about the built in function to reverse a string.
-
-## Hint: 3
-- Once you have split and reversed, do not forget to join them back into one string.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function reverseString(str) {
-  var strReverse = str.split('').reverse().join('');
-  return strReverse;
-}
-```
-
-# Code Explanation:
-This is a straightforward code. We create a variable that will hold the string split by characters, and then reversed and put back together.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282`
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Problem Explanation:
+You need to take the string and reverse it so if you had originally 'hello', it will turn into 'olleh'. Because you will need to split it, you will be working with Arrays too.
+
+## Hint: 1
+- You should split the string by characters.
+
+## Hint: 2
+- Find out about the built in function to reverse a string.
+
+## Hint: 3
+- Once you have split and reversed, do not forget to join them back into one string.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function reverseString(str) {
+  var strReverse = str.split('').reverse().join('');
+  return strReverse;
+}
+```
+
+# Code Explanation:
+This is a straightforward code. We create a variable that will hold the string split by characters, and then reversed and put back together.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282`
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Search-and-Replace.md b/Bonfire-Search-and-Replace.md
index be97bac..631e459 100644
--- a/Bonfire-Search-and-Replace.md
+++ b/Bonfire-Search-and-Replace.md
@@ -1,42 +1,42 @@
-# Problem Explanation:
-- You will create a program that takes a sentence, then search for a word in it and replaces it for a new one while preserving the uppercase if there is one.
-
-## Hint: 1
-- Find the index where `before` is in the string.
-
-## Hint: 2
-- Check first letter case.
-
-## Hint: 3
-- Strings are immutable, you will need to save the edits on another variable, even if you must reuse the same one just to make it look like the changes where done using just that one variable.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function myReplace(str, before, after) {
-  // Find index where before is on string
-  var index = str.indexOf(before);
-  // Check to see if the first letter is uppercase or not
-  if (str[index] === str[index].toUpperCase()) {
-    // Change the after word to be capitalized before we use it.
-    after = after.charAt(0).toUpperCase() + after.slice(1);
-  }
-  // Now replace the original str with the edited one.
-  str = str.replace(before, after);
-
-  return str;
-}
-```
-
-# Code Explanation:
-- Read comments on program.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Problem Explanation:
+- You will create a program that takes a sentence, then search for a word in it and replaces it for a new one while preserving the uppercase if there is one.
+
+## Hint: 1
+- Find the index where `before` is in the string.
+
+## Hint: 2
+- Check first letter case.
+
+## Hint: 3
+- Strings are immutable, you will need to save the edits on another variable, even if you must reuse the same one just to make it look like the changes where done using just that one variable.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function myReplace(str, before, after) {
+  // Find index where before is on string
+  var index = str.indexOf(before);
+  // Check to see if the first letter is uppercase or not
+  if (str[index] === str[index].toUpperCase()) {
+    // Change the after word to be capitalized before we use it.
+    after = after.charAt(0).toUpperCase() + after.slice(1);
+  }
+  // Now replace the original str with the edited one.
+  str = str.replace(before, after);
+
+  return str;
+}
+```
+
+# Code Explanation:
+- Read comments on program.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Seek-and-Destroy.md b/Bonfire-Seek-and-Destroy.md
index 1e9b615..f277fe6 100644
--- a/Bonfire-Seek-and-Destroy.md
+++ b/Bonfire-Seek-and-Destroy.md
@@ -1,38 +1,38 @@
-# Explanation:
-This problem is a bit tricky because you have to familiarize yourself with Arguments, as you will have to work with two **or more** but on the script you only see two. Many people hardcode this program for three arguments. You will remove any number from the first argument that is the same as any other other arguments.
-
-## Hint: 1
-You need to work with `arguments` as if it was a regular array. The best way is to convert it into one.
-
-## Hint: 2
-You need to filter, this also means you need to create a callback function, one that checks if the element is on the `indexOf()`
-
-## Hint: 3
-To convert `arguments` into an array use this code `var args = Array.prototype.slice.call(arguments);`
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function destroyer(arr) {
-  var args = Array.prototype.slice.call(arguments);
-  args.splice(0, 1);
-  return arr.filter(function(element) {
-    return args.indexOf(element) === -1;
-  });
-}
-```
-
-# Code Explanation:
-- The first line will turn the `arguments` variable into a full array instead of the limited array it currently is.
-- Next I remove the first argument since I don't need, since I only want the other arguments passed besides the first which is the array we are going to compare against.
-- Then use the `filter()` to filter out the elements that are on the array and keep the ones that are not.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282`
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Explanation:
+This problem is a bit tricky because you have to familiarize yourself with Arguments, as you will have to work with two **or more** but on the script you only see two. Many people hardcode this program for three arguments. You will remove any number from the first argument that is the same as any other other arguments.
+
+## Hint: 1
+You need to work with `arguments` as if it was a regular array. The best way is to convert it into one.
+
+## Hint: 2
+You need to filter, this also means you need to create a callback function, one that checks if the element is on the `indexOf()`
+
+## Hint: 3
+To convert `arguments` into an array use this code `var args = Array.prototype.slice.call(arguments);`
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function destroyer(arr) {
+  var args = Array.prototype.slice.call(arguments);
+  args.splice(0, 1);
+  return arr.filter(function(element) {
+    return args.indexOf(element) === -1;
+  });
+}
+```
+
+# Code Explanation:
+- The first line will turn the `arguments` variable into a full array instead of the limited array it currently is.
+- Next I remove the first argument since I don't need, since I only want the other arguments passed besides the first which is the array we are going to compare against.
+- Then use the `filter()` to filter out the elements that are on the array and keep the ones that are not.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282`
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Smallest-Common-Multiple.md b/Bonfire-Smallest-Common-Multiple.md
index 3b3498a..428236b 100644
--- a/Bonfire-Smallest-Common-Multiple.md
+++ b/Bonfire-Smallest-Common-Multiple.md
@@ -1,110 +1,110 @@
-# Explanation:
-This particular problem can be confusing because most people look for the smallest common multiple of the two number but forget the keyword **range.** This means that if you get `[1,5]` then you have to check for the smallest common multiple for all these numbers [1,2,3,4,5] that is evenly divisible by all of them.
-
-## Hint: 1
-Create an array with all the numbers that are missing from the original array to make it easier to check when having to check for even division.
-
-## Hint: 2
-You can use modulo `%` to check if the reminder is 0, which means it is evenly divisible.
-
-## Hint: 3
-If you sort the array from greater to lowest then you can check for the first two numbers as it is more likely to the the smallest common multiple than the lower numbers.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function smallestCommons(arr) {
-  // Sort array from greater to lowest
-  // This line of code was from Adam Doyle (http://github.com/Adoyle2014)
-  arr.sort(function(a, b) {
-    return b - a;
-  });
-
-  // Create new array and add all values from greater to smaller from the original array.
-  var newArr = [];
-  for (var i = arr[0]; i >= arr[1]; i--) {
-    newArr.push(i);
-  }
-
-  // Variables needed declared outside the loops.
-  var quot = 0;
-  var loop = 1;
-  var n;
-
-  // run code while n is not the same as the array length.
-  do {
-    quot = newArr[0] * loop * newArr[1];
-    for (n = 2; n < newArr.length; n++) {
-      if (quot % newArr[n] !== 0) {
-        break;
-      }
-    }
-
-    loop++;
-  } while (n !== newArr.length);
-
-  return quot;
-}
-```
-
-# Code Explanation:
-- Because the possibility of the smallest common denominator being among the two biggest numbers, it makes sense to check those first, so sort the array.
-- Create a new array to sore all the numbers.
-- Use a descending for loop to add the numbers from the biggest to the smallest in the new array.
-- Declare the variables for the quotient, the number of loops and the variable that we will use in a for loop on another scope, this will allow us access outside the loop.
-- Use a do while loop to check what we need while **n** is not the same length as the new array.
-- In the **do** part, we are going to multiply the very first number, times the number of loops, times the second number.
-- The loop part will allows us to increase the number beyond the greatest number we have without having to change the algorithm.
-- We enter a for loop that will go from n being 2 and going up by one while it is smaller than the array with all the numbers.
-- If the quotient is not even then stop the loop. If it is even then it check for the next elements in the array until it is not even or we find our answer.
-- Outside the loop, increase the value of loop.
-- At the end of the loop return the quotient.
-
-If the array only has two elements then the for loop never gets used and the return value is the product of said numbers. Otherwise, from the third element and until n is the same and the array length check if the remainder of the quotient and the third value of the array is not 0, if it is not 0 then stop loop increases and then we start over. If the remainder was 0 then keep checking until the end of the array.
-
-# Alternate solution:
-
-Note: The solution above requires over 2,000 loops to calculate the test case smallestCommons([1,13]), and over 4 million loops to calculate smallestCommons([1,25]). The alternate code below evaluates smallestCommons([1,13]) in around 20 loops and smallestCommons([1,25]) in 40, by using a more efficient algorithm.
-
-```js
-function smallestCommons(arr) {
-  for(i = Math.max(...arr); i >= Math.min(...arr); i--) arr.push(i);
-  
-  return arr.slice(2).reduce(function(x,y){
-    var a = x, b = y, t = 0;    
-    while(a % b){a = a % b; t = a; a = b; b = t;}
-    return x / b * y;
-  });
-}
-
-```
-
-If you have trouble understanding the .reduce() method, you can compare it to this code, which essentially does the same thing:
-
-```
-function smallestCommons(arr) {
-  for(i = Math.max(...arr); i >= Math.min(...arr); i--) arr.push(i);
-  
-  var lcm = arr[2], a = 0, b = 0, t = 0;
-  
-  for (i = 3; i < arr.length; i++){
-    a = lcm, b = arr[i];  
-    while(a % b){a = a % b; t = a; a = b; b = t;}
-    lcm = lcm / b * arr[i];
-  }
-  
-  return lcm;
-}
-```
-
-This code is based on the [Euclidean algorithm](https://en.wikipedia.org/wiki/Euclidean_algorithm) for finding smallest common multiples.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282 @Adoyle2014`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Explanation:
+This particular problem can be confusing because most people look for the smallest common multiple of the two number but forget the keyword **range.** This means that if you get `[1,5]` then you have to check for the smallest common multiple for all these numbers [1,2,3,4,5] that is evenly divisible by all of them.
+
+## Hint: 1
+Create an array with all the numbers that are missing from the original array to make it easier to check when having to check for even division.
+
+## Hint: 2
+You can use modulo `%` to check if the reminder is 0, which means it is evenly divisible.
+
+## Hint: 3
+If you sort the array from greater to lowest then you can check for the first two numbers as it is more likely to the the smallest common multiple than the lower numbers.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function smallestCommons(arr) {
+  // Sort array from greater to lowest
+  // This line of code was from Adam Doyle (http://github.com/Adoyle2014)
+  arr.sort(function(a, b) {
+    return b - a;
+  });
+
+  // Create new array and add all values from greater to smaller from the original array.
+  var newArr = [];
+  for (var i = arr[0]; i >= arr[1]; i--) {
+    newArr.push(i);
+  }
+
+  // Variables needed declared outside the loops.
+  var quot = 0;
+  var loop = 1;
+  var n;
+
+  // run code while n is not the same as the array length.
+  do {
+    quot = newArr[0] * loop * newArr[1];
+    for (n = 2; n < newArr.length; n++) {
+      if (quot % newArr[n] !== 0) {
+        break;
+      }
+    }
+
+    loop++;
+  } while (n !== newArr.length);
+
+  return quot;
+}
+```
+
+# Code Explanation:
+- Because the possibility of the smallest common denominator being among the two biggest numbers, it makes sense to check those first, so sort the array.
+- Create a new array to sore all the numbers.
+- Use a descending for loop to add the numbers from the biggest to the smallest in the new array.
+- Declare the variables for the quotient, the number of loops and the variable that we will use in a for loop on another scope, this will allow us access outside the loop.
+- Use a do while loop to check what we need while **n** is not the same length as the new array.
+- In the **do** part, we are going to multiply the very first number, times the number of loops, times the second number.
+- The loop part will allows us to increase the number beyond the greatest number we have without having to change the algorithm.
+- We enter a for loop that will go from n being 2 and going up by one while it is smaller than the array with all the numbers.
+- If the quotient is not even then stop the loop. If it is even then it check for the next elements in the array until it is not even or we find our answer.
+- Outside the loop, increase the value of loop.
+- At the end of the loop return the quotient.
+
+If the array only has two elements then the for loop never gets used and the return value is the product of said numbers. Otherwise, from the third element and until n is the same and the array length check if the remainder of the quotient and the third value of the array is not 0, if it is not 0 then stop loop increases and then we start over. If the remainder was 0 then keep checking until the end of the array.
+
+# Alternate solution:
+
+Note: The solution above requires over 2,000 loops to calculate the test case smallestCommons([1,13]), and over 4 million loops to calculate smallestCommons([1,25]). The alternate code below evaluates smallestCommons([1,13]) in around 20 loops and smallestCommons([1,25]) in 40, by using a more efficient algorithm.
+
+```js
+function smallestCommons(arr) {
+  for(i = Math.max(...arr); i >= Math.min(...arr); i--) arr.push(i);
+  
+  return arr.slice(2).reduce(function(x,y){
+    var a = x, b = y, t = 0;    
+    while(a % b){a = a % b; t = a; a = b; b = t;}
+    return x / b * y;
+  });
+}
+
+```
+
+If you have trouble understanding the .reduce() method, you can compare it to this code, which essentially does the same thing:
+
+```
+function smallestCommons(arr) {
+  for(i = Math.max(...arr); i >= Math.min(...arr); i--) arr.push(i);
+  
+  var lcm = arr[2], a = 0, b = 0, t = 0;
+  
+  for (i = 3; i < arr.length; i++){
+    a = lcm, b = arr[i];  
+    while(a % b){a = a % b; t = a; a = b; b = t;}
+    lcm = lcm / b * arr[i];
+  }
+  
+  return lcm;
+}
+```
+
+This code is based on the [Euclidean algorithm](https://en.wikipedia.org/wiki/Euclidean_algorithm) for finding smallest common multiples.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282 @Adoyle2014`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Sorted-Union.md b/Bonfire-Sorted-Union.md
index fb5993a..9454cab 100644
--- a/Bonfire-Sorted-Union.md
+++ b/Bonfire-Sorted-Union.md
@@ -1,51 +1,51 @@
-# Problem Explanation:
-- The program has to return a new array of unique values from two original arrays in the order they show up. So there is not sorting required, and no duplicates.
-
-## Hint: 1
-- Since you have no idea how many parameters were passed, it would be best to loop through the `arguments` before looping through the arrays.
-
-## Hint: 2
-- I used loops, you can use something else like map, reduce or others if you want.
-
-## Hint: 3
-- You will have to check if the current value is already on the array to be returned for every value.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function unite(arr1, arr2, arr3) {
-  // Creates an empty array to store our final result.
-  var finalArray = [];
-
-  // Loop through the arguments object to truly made the program work with two or more arrays
-  // instead of 3.
-  for (var i = 0; i < arguments.length; i++) {
-    var arrayArguments = arguments[i];
-
-    // Loops through the array at hand
-    for (var j = 0; j < arrayArguments.length; j++) {
-      var indexValue = arrayArguments[j];
-
-      // Checks if the value is already on the final array.
-      if (finalArray.indexOf(indexValue) < 0) {
-        finalArray.push(indexValue);
-      }
-    }
-  }
-
-  return finalArray;
-}
-```
-
-# Code Explanation:
-- Check comments in code.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Problem Explanation:
+- The program has to return a new array of unique values from two original arrays in the order they show up. So there is not sorting required, and no duplicates.
+
+## Hint: 1
+- Since you have no idea how many parameters were passed, it would be best to loop through the `arguments` before looping through the arrays.
+
+## Hint: 2
+- I used loops, you can use something else like map, reduce or others if you want.
+
+## Hint: 3
+- You will have to check if the current value is already on the array to be returned for every value.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function unite(arr1, arr2, arr3) {
+  // Creates an empty array to store our final result.
+  var finalArray = [];
+
+  // Loop through the arguments object to truly made the program work with two or more arrays
+  // instead of 3.
+  for (var i = 0; i < arguments.length; i++) {
+    var arrayArguments = arguments[i];
+
+    // Loops through the array at hand
+    for (var j = 0; j < arrayArguments.length; j++) {
+      var indexValue = arrayArguments[j];
+
+      // Checks if the value is already on the final array.
+      if (finalArray.indexOf(indexValue) < 0) {
+        finalArray.push(indexValue);
+      }
+    }
+  }
+
+  return finalArray;
+}
+```
+
+# Code Explanation:
+- Check comments in code.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Spinal-Tap-Case.md b/Bonfire-Spinal-Tap-Case.md
index ff0d784..22d9006 100644
--- a/Bonfire-Spinal-Tap-Case.md
+++ b/Bonfire-Spinal-Tap-Case.md
@@ -1,39 +1,39 @@
-# Problem Explanation:
-- Convert the given string to an all lowercase sentence joined by dashes.
-
-## Hint: 1
-- Create a regex to for all white spaces and underscores.
-
-## Hint: 2
-- You will also have to make everything lowercase.
-
-## Hint: 3
-- The tricky part is getting the regex part to work, once you do that then just turn the uppercase to lowercase and replace spaces with underscores using `replace()`
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function spinalCase(str) {
-  // Create a variable for the white space and underscores.
-  var regex = /\s+|_+/g;
-
-  // Replace low-upper case to low-space-uppercase
-  str = str.replace(/([a-z])([A-Z])/g, '$1 $2');
-
-  // Replace space and underscore with -
-  return str.replace(regex, '-').toLowerCase();
-}
-```
-
-# Code Explanation:
-- Read comments in code.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Problem Explanation:
+- Convert the given string to an all lowercase sentence joined by dashes.
+
+## Hint: 1
+- Create a regex to for all white spaces and underscores.
+
+## Hint: 2
+- You will also have to make everything lowercase.
+
+## Hint: 3
+- The tricky part is getting the regex part to work, once you do that then just turn the uppercase to lowercase and replace spaces with underscores using `replace()`
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function spinalCase(str) {
+  // Create a variable for the white space and underscores.
+  var regex = /\s+|_+/g;
+
+  // Replace low-upper case to low-space-uppercase
+  str = str.replace(/([a-z])([A-Z])/g, '$1 $2');
+
+  // Replace space and underscore with -
+  return str.replace(regex, '-').toLowerCase();
+}
+```
+
+# Code Explanation:
+- Read comments in code.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Style-Guide.md b/Bonfire-Style-Guide.md
index 12dde65..e58e71e 100644
--- a/Bonfire-Style-Guide.md
+++ b/Bonfire-Style-Guide.md
@@ -1,38 +1,38 @@
-_work in progress_
-
-# Bonfire Style Guide
-Writing Bonfire challenges is a great way to exercise your own problem solving and testing abilities. It is a simple three step process.
-1. Fill out the [generator](http://www.freecodecamp.com/bonfire-challenge-generator) form and test your challenge.
-2. Once you have confirmed a working bonfire challenge in the generator, copy and paste the the fields into the [JSON generator.](http://www.freecodecamp.com/bonfire-json-generator)
-3. Copy the JSON, fork the freecodecamp repository, and submit a pull request with your addition to the [bonfires.json.](https://github.com/FreeCodeCamp/freecodecamp/blob/master/seed_data/bonfires.json)
-
-## Name
-Name your challenge
-
-## Difficulty
-Attempt to rate difficulty compared against existing bonfire challenges.
-
-_TODO: add basic quantifiers for each difficulty level_
-
-## Description
-Separate paragraphs with a line break. Only the first paragraph is visible prior to a user clicking the "More information" button.
-
-All necessary information must be included in the first paragraph. Write this first paragraph as succinct as possible. Subsequent paragraphs should offer hints or details if needed.
-
-If your subject matter warrants deeper understanding, you may link to Wikipedia.
-
-## Challenge Seed
-This is important.
-
-## ~~Challenge Entry Point~~ (deprecated)
-_Leave this field blank. It will soon be removed from the generator._
-
-## Tests
-These tests are what bring your challenge to life. Without them, we cannot confirm the accuracy of a user's submitted answer. Choose your tests wisely.
-
-Bonfire tests are written using the [Chai.js](http://chaijs.com/) assertion library. Please use the `should` and `expect` syntax for end user readability. As an example of what not do to, many of the original Bonfire challenges are written with `assert` syntax and many of the test cases are difficult to read.
-
-If your bonfire question has a lot of edge cases, you will need to write many tests for full coverage. If you find yourself writing more tests than you desire, you may consider simplifying the requirements of your bonfire challenge. For difficulty level 1 through 3, you will generally only need 2 to 4 tests.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @brandenbyers @Rafase282`
+_work in progress_
+
+# Bonfire Style Guide
+Writing Bonfire challenges is a great way to exercise your own problem solving and testing abilities. It is a simple three step process.
+1. Fill out the [generator](http://www.freecodecamp.com/bonfire-challenge-generator) form and test your challenge.
+2. Once you have confirmed a working bonfire challenge in the generator, copy and paste the the fields into the [JSON generator.](http://www.freecodecamp.com/bonfire-json-generator)
+3. Copy the JSON, fork the freecodecamp repository, and submit a pull request with your addition to the [bonfires.json.](https://github.com/FreeCodeCamp/freecodecamp/blob/master/seed_data/bonfires.json)
+
+## Name
+Name your challenge
+
+## Difficulty
+Attempt to rate difficulty compared against existing bonfire challenges.
+
+_TODO: add basic quantifiers for each difficulty level_
+
+## Description
+Separate paragraphs with a line break. Only the first paragraph is visible prior to a user clicking the "More information" button.
+
+All necessary information must be included in the first paragraph. Write this first paragraph as succinct as possible. Subsequent paragraphs should offer hints or details if needed.
+
+If your subject matter warrants deeper understanding, you may link to Wikipedia.
+
+## Challenge Seed
+This is important.
+
+## ~~Challenge Entry Point~~ (deprecated)
+_Leave this field blank. It will soon be removed from the generator._
+
+## Tests
+These tests are what bring your challenge to life. Without them, we cannot confirm the accuracy of a user's submitted answer. Choose your tests wisely.
+
+Bonfire tests are written using the [Chai.js](http://chaijs.com/) assertion library. Please use the `should` and `expect` syntax for end user readability. As an example of what not do to, many of the original Bonfire challenges are written with `assert` syntax and many of the test cases are difficult to read.
+
+If your bonfire question has a lot of edge cases, you will need to write many tests for full coverage. If you find yourself writing more tests than you desire, you may consider simplifying the requirements of your bonfire challenge. For difficulty level 1 through 3, you will generally only need 2 to 4 tests.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @brandenbyers @Rafase282`
diff --git a/Bonfire-Sum-All-Numbers-in-a-Range.md b/Bonfire-Sum-All-Numbers-in-a-Range.md
index 272ffdf..aed348f 100644
--- a/Bonfire-Sum-All-Numbers-in-a-Range.md
+++ b/Bonfire-Sum-All-Numbers-in-a-Range.md
@@ -1,60 +1,60 @@
-# Problem Explanation:
-- You need to create a program that will take an array of two numbers who are not necessarily in order, and then add not just those numbers but any numbers in between. For example, [3,1] will be the same as `1+2+3` and not just `3+1`
-
-## Hint: 1
-- Use `Math.max()` to find the maximum value of two numbers.
-
-## Hint: 2
-- Use `Math.min()` to find the minimum value of two numbers.
-
-## Hint: 3
-- Remember to that you must add all the numbers in between so this would require a way to get those numbers.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution 1:
-
-```js
-function sumAll(arr) {
-    var max = Math.max(arr[0], arr[1]);
-    var min = Math.min(arr[0], arr[1]);
-    var temp = 0;
-    for (var i=min; i <= max; i++){
-        temp += i;
-    }
-  return(temp);
-}
-
-sumAll([1, 4]);
-```
-
-# Code Explanation:
-- First create a variable to store the max number between two.
-- The same as before for the Smallest number.
-- We create a temporary variable to add the numbers.
-
-Since the numbers might not be always in order, using max() and min() will help organize.
-
-## Code Solution 2:
-```js
-function sumAll(arr) {
-  // Buckle up everything to one!
-
-  // Using ES6 arrow function (one-liner)
-  var sortedArr = arr.sort((a,b) => a-b);
-  var firstNum = arr[0];
-  var lastNum = arr[1];
-  // Using Arithmetic Progression summing formula
-  // https://en.wikipedia.org/wiki/Arithmetic_progression#Sum
-  var sum = (lastNum - firstNum + 1) * (firstNum + lastNum) / 2;
-  return sum;
-}
-```
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282 @abhisekp`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Problem Explanation:
+- You need to create a program that will take an array of two numbers who are not necessarily in order, and then add not just those numbers but any numbers in between. For example, [3,1] will be the same as `1+2+3` and not just `3+1`
+
+## Hint: 1
+- Use `Math.max()` to find the maximum value of two numbers.
+
+## Hint: 2
+- Use `Math.min()` to find the minimum value of two numbers.
+
+## Hint: 3
+- Remember to that you must add all the numbers in between so this would require a way to get those numbers.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution 1:
+
+```js
+function sumAll(arr) {
+    var max = Math.max(arr[0], arr[1]);
+    var min = Math.min(arr[0], arr[1]);
+    var temp = 0;
+    for (var i=min; i <= max; i++){
+        temp += i;
+    }
+  return(temp);
+}
+
+sumAll([1, 4]);
+```
+
+# Code Explanation:
+- First create a variable to store the max number between two.
+- The same as before for the Smallest number.
+- We create a temporary variable to add the numbers.
+
+Since the numbers might not be always in order, using max() and min() will help organize.
+
+## Code Solution 2:
+```js
+function sumAll(arr) {
+  // Buckle up everything to one!
+
+  // Using ES6 arrow function (one-liner)
+  var sortedArr = arr.sort((a,b) => a-b);
+  var firstNum = arr[0];
+  var lastNum = arr[1];
+  // Using Arithmetic Progression summing formula
+  // https://en.wikipedia.org/wiki/Arithmetic_progression#Sum
+  var sum = (lastNum - firstNum + 1) * (firstNum + lastNum) / 2;
+  return sum;
+}
+```
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282 @abhisekp`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Sum-All-Primes.md b/Bonfire-Sum-All-Primes.md
index 663db61..326165b 100644
--- a/Bonfire-Sum-All-Primes.md
+++ b/Bonfire-Sum-All-Primes.md
@@ -1,64 +1,64 @@
-# Explanation:
-The explanation for this problem is very simple. You will generate a list of prime numbers up to the number you are given as a parameter. Then you need to add them all up and return that value. The tricky part is on generating the list of prime numbers. I suggest you find a code or a good math algorithm that you can turn into code.
-
-## Hint: 1
-Generate a list of all the numbers up to and including the one you got as a parameter. This will be needed to determine which numbers are prime or not.
-
-## Hint: 2
-Check this [link](http://stackoverflow.com/questions/11966520/how-to-find-prime-numbers-between-0-100) if you prefer to find a solution for finding primes, or try learning and implementing your own [Sieve of Eratosthenes](https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes)
-
-## Hint: 3
-This problem is hard if you have to create your own code to check for primes, so don't feel bad if you had to use someone's code for that bit. Either way, you are most likely using array, so once you generate an array of primes, then just add them all up and return the number you get.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function sumPrimes(num) {
-  var res = 0;
-
-  // FUnction to get the primes up to max in an array
-  function getPrimes(max) {
-    var sieve = [];
-    var i;
-    var j;
-    var primes = [];
-    for (i = 2; i <= max; ++i) {
-      if (!sieve[i]) {
-        // i has not been marked -- it is prime
-        primes.push(i);
-        for (j = i << 1; j <= max; j += i) {
-          sieve[j] = true;
-        }
-      }
-    }
-
-    return primes;
-  }
-
-  // Add the primes
-  var primes = getPrimes(num);
-  for (var p = 0; p < primes.length; p++) {
-    res += primes[p];
-  }
-
-  return res;
-}
-```
-
-# Code Explanation:
-- Create a function that generates the numbers from 1 to **num** and check if they are prime along the way.
-- Declare the variables that will be needed.
-- Start with 2, if it has not been marked and added to the sieve array then it is a prime and we add it to the prime array.
-- Add the others to the sieve array.
-- Return the primes
-- Loop through the returned array and add all the elements to then return the final value.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Explanation:
+The explanation for this problem is very simple. You will generate a list of prime numbers up to the number you are given as a parameter. Then you need to add them all up and return that value. The tricky part is on generating the list of prime numbers. I suggest you find a code or a good math algorithm that you can turn into code.
+
+## Hint: 1
+Generate a list of all the numbers up to and including the one you got as a parameter. This will be needed to determine which numbers are prime or not.
+
+## Hint: 2
+Check this [link](http://stackoverflow.com/questions/11966520/how-to-find-prime-numbers-between-0-100) if you prefer to find a solution for finding primes, or try learning and implementing your own [Sieve of Eratosthenes](https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes)
+
+## Hint: 3
+This problem is hard if you have to create your own code to check for primes, so don't feel bad if you had to use someone's code for that bit. Either way, you are most likely using array, so once you generate an array of primes, then just add them all up and return the number you get.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function sumPrimes(num) {
+  var res = 0;
+
+  // FUnction to get the primes up to max in an array
+  function getPrimes(max) {
+    var sieve = [];
+    var i;
+    var j;
+    var primes = [];
+    for (i = 2; i <= max; ++i) {
+      if (!sieve[i]) {
+        // i has not been marked -- it is prime
+        primes.push(i);
+        for (j = i << 1; j <= max; j += i) {
+          sieve[j] = true;
+        }
+      }
+    }
+
+    return primes;
+  }
+
+  // Add the primes
+  var primes = getPrimes(num);
+  for (var p = 0; p < primes.length; p++) {
+    res += primes[p];
+  }
+
+  return res;
+}
+```
+
+# Code Explanation:
+- Create a function that generates the numbers from 1 to **num** and check if they are prime along the way.
+- Declare the variables that will be needed.
+- Start with 2, if it has not been marked and added to the sieve array then it is a prime and we add it to the prime array.
+- Add the others to the sieve array.
+- Return the primes
+- Loop through the returned array and add all the elements to then return the final value.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Symmetric-Difference.md b/Bonfire-Symmetric-Difference.md
index e0a490e..fe5186b 100644
--- a/Bonfire-Symmetric-Difference.md
+++ b/Bonfire-Symmetric-Difference.md
@@ -1,91 +1,91 @@
-# Problem Explanation:
-Symmetric Difference is the difference between **two** sets.
-
-So in the Symmetric Difference Bonfire you would work through the arrays of numbers something like this -
-
-`sym(A, B, C)` Translates to `sym(sym(A,B),C)`
-
-Or in plain English - First find the Symmetric Difference of Set A and Set B. Then find the Symmetric Difference of this new set and Set C.
-
-So -
-
-`sym([1, 2, 5], [2, 3, 5], [3, 4, 5])`
-
-would equal
-
-`[1,4,5]`
-
-Here's a nice video tutorial (with an awful fake British accent!) -
-
-[YouTube - Symmetric Difference](https://www.youtube.com/watch?v=PxffSUQRkG4)
-
-## Hint: 1
-The arguments object is not an Array. It is similar to an Array, but does not have any Array properties except length. For example, it does not have the pop method. However it can be converted to a real Array:
-
-`var args = Array.prototype.slice.call(arguments);`
-
-## Hint: 2
-Write a function that returns the symmetric difference of array1 and array2.
-
-`yourFunction([1, 2, 3], [2, 4, 6])` must return `[1, 3, 4, 6]`
-
-## Hint: 3
-Use `Array.prototype.reduce` along with yourFunction to repeat the process on multiple arguments
-
-Something a bit strange about the definition of symmetric difference is that if one identical item occurs in three different sets, it is a member of the symmetric difference.  An example is easier to explain:
-```
-a = [1, 2, 5]
-b = [2, 3, 5]
-c = [3, 4, 5]
-
-sym(a, b) = [1, 3]
-sym([1, 3], c) = [1, 4, 5]
-```
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function sym() {
-
-  // Convert the argument object into a proper array
-  var args = Array.prototype.slice.call(arguments);
-
-  // Return the symmetric difference of 2 arrays
-  var getDiff = function(arr1, arr2) {
-
-    // Returns items in arr1 that don't exist in arr2
-    function filterFunction(arr1, arr2) {
-      return arr1.filter(function(item) {
-        return arr2.indexOf(item) === -1;
-      });
-    }
-
-    // Run filter function on each array against the other then get unique values
-    return filterFunction(arr1, arr2)
-      .concat(filterFunction(arr2, arr1))
-      .filter(function(item, idx, arr) {
-        // Keep any items that are unique - the index of the current item === index of the first occurrence in the array
-        return arr.indexOf(item) === idx;
-      });
-  };
-
-  // Reduce all arguments getting the difference of them
-  return args.reduce(getDiff, []);
-}
-```
-
-# Code Explanation:
-- Read comments in code.
-
-# Related Links
-- [Symmetric Difference](https://en.wikipedia.org/wiki/Symmetric_difference)
-- [Array.reduce()](http://devdocs.io/javascript/global_objects/array/reduce)
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282 @guyjoseph @jjmax75`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Problem Explanation:
+Symmetric Difference is the difference between **two** sets.
+
+So in the Symmetric Difference Bonfire you would work through the arrays of numbers something like this -
+
+`sym(A, B, C)` Translates to `sym(sym(A,B),C)`
+
+Or in plain English - First find the Symmetric Difference of Set A and Set B. Then find the Symmetric Difference of this new set and Set C.
+
+So -
+
+`sym([1, 2, 5], [2, 3, 5], [3, 4, 5])`
+
+would equal
+
+`[1,4,5]`
+
+Here's a nice video tutorial (with an awful fake British accent!) -
+
+[YouTube - Symmetric Difference](https://www.youtube.com/watch?v=PxffSUQRkG4)
+
+## Hint: 1
+The arguments object is not an Array. It is similar to an Array, but does not have any Array properties except length. For example, it does not have the pop method. However it can be converted to a real Array:
+
+`var args = Array.prototype.slice.call(arguments);`
+
+## Hint: 2
+Write a function that returns the symmetric difference of array1 and array2.
+
+`yourFunction([1, 2, 3], [2, 4, 6])` must return `[1, 3, 4, 6]`
+
+## Hint: 3
+Use `Array.prototype.reduce` along with yourFunction to repeat the process on multiple arguments
+
+Something a bit strange about the definition of symmetric difference is that if one identical item occurs in three different sets, it is a member of the symmetric difference.  An example is easier to explain:
+```
+a = [1, 2, 5]
+b = [2, 3, 5]
+c = [3, 4, 5]
+
+sym(a, b) = [1, 3]
+sym([1, 3], c) = [1, 4, 5]
+```
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function sym() {
+
+  // Convert the argument object into a proper array
+  var args = Array.prototype.slice.call(arguments);
+
+  // Return the symmetric difference of 2 arrays
+  var getDiff = function(arr1, arr2) {
+
+    // Returns items in arr1 that don't exist in arr2
+    function filterFunction(arr1, arr2) {
+      return arr1.filter(function(item) {
+        return arr2.indexOf(item) === -1;
+      });
+    }
+
+    // Run filter function on each array against the other then get unique values
+    return filterFunction(arr1, arr2)
+      .concat(filterFunction(arr2, arr1))
+      .filter(function(item, idx, arr) {
+        // Keep any items that are unique - the index of the current item === index of the first occurrence in the array
+        return arr.indexOf(item) === idx;
+      });
+  };
+
+  // Reduce all arguments getting the difference of them
+  return args.reduce(getDiff, []);
+}
+```
+
+# Code Explanation:
+- Read comments in code.
+
+# Related Links
+- [Symmetric Difference](https://en.wikipedia.org/wiki/Symmetric_difference)
+- [Array.reduce()](http://devdocs.io/javascript/global_objects/array/reduce)
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282 @guyjoseph @jjmax75`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Validate-US-Telephone-Numbers.md b/Bonfire-Validate-US-Telephone-Numbers.md
index 9394027..f485987 100644
--- a/Bonfire-Validate-US-Telephone-Numbers.md
+++ b/Bonfire-Validate-US-Telephone-Numbers.md
@@ -1,59 +1,59 @@
-# Problem Explanation:
-- The task is not that hard to understand, implementing it is the hardest part. You have a to validate an US phone number. This means there is a certain amount of numbers required, while you don't need to put the country code, you will still need the area code and use one of the few formats allowed.
-
-## Hint: 1
-- There is no way around it, you will need to brush up your regular expressions skills.
-
-## Hint: 2
-- Try using a site like [http://regexpal.com/](http://regexpal.com/) to test the regex live while you create it.
-
-## Hint: 3
-- Start by trying to get it to validate each format from the example, each one should take a new line, once you get to select them all, then add examples that should not be selected and make sure they are not selected.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function telephoneCheck(str) {
-  // Comprehensive regex from @dting 
-  var re = /^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})$/;
-
-  return re.test(str);
-}
-```
-
-```js
-function telephoneCheck(str) {
-  // Good luck!
-  var re = /^1?[\(\s]*\d{3}[-\)\s]*\d{3}[-\s]?\d{4}$/;
-
-  return re.test(str);
-}
-```
-
-```js
-function telephoneCheck(str) {
-//provided by jhalls
-   var regex = /^1?\s?(\(\d{3}\)|\d{3})?\s?-?\d{3}-?\s?\d{4}$/;
-  
-   if (str.match(regex)) {  
-       return true;
-   }
-   
-  else {
-     return false;
-   }
-}
-```
-
-# Code Explanation:
-- While the answer works, there is a much shorter regex that will satisfy this problem. However the code provide is very good and robust when it comes to validating US phone numbers client side, a much better way would be to implement this library [libphonenumber.](https://github.com/googlei18n/libphonenumber)
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282 @guyjoseph  @dting @jhalls`**
-
+# Problem Explanation:
+- The task is not that hard to understand, implementing it is the hardest part. You have a to validate an US phone number. This means there is a certain amount of numbers required, while you don't need to put the country code, you will still need the area code and use one of the few formats allowed.
+
+## Hint: 1
+- There is no way around it, you will need to brush up your regular expressions skills.
+
+## Hint: 2
+- Try using a site like [http://regexpal.com/](http://regexpal.com/) to test the regex live while you create it.
+
+## Hint: 3
+- Start by trying to get it to validate each format from the example, each one should take a new line, once you get to select them all, then add examples that should not be selected and make sure they are not selected.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function telephoneCheck(str) {
+  // Comprehensive regex from @dting 
+  var re = /^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})$/;
+
+  return re.test(str);
+}
+```
+
+```js
+function telephoneCheck(str) {
+  // Good luck!
+  var re = /^1?[\(\s]*\d{3}[-\)\s]*\d{3}[-\s]?\d{4}$/;
+
+  return re.test(str);
+}
+```
+
+```js
+function telephoneCheck(str) {
+//provided by jhalls
+   var regex = /^1?\s?(\(\d{3}\)|\d{3})?\s?-?\d{3}-?\s?\d{4}$/;
+  
+   if (str.match(regex)) {  
+       return true;
+   }
+   
+  else {
+     return false;
+   }
+}
+```
+
+# Code Explanation:
+- While the answer works, there is a much shorter regex that will satisfy this problem. However the code provide is very good and robust when it comes to validating US phone numbers client side, a much better way would be to implement this library [libphonenumber.](https://github.com/googlei18n/libphonenumber)
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282 @guyjoseph  @dting @jhalls`**
+
 > **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
\ No newline at end of file
diff --git a/Bonfire-Where-art-thou.md b/Bonfire-Where-art-thou.md
index 62652de..25add77 100644
--- a/Bonfire-Where-art-thou.md
+++ b/Bonfire-Where-art-thou.md
@@ -1,94 +1,94 @@
-![](http://i.imgur.com/IUY2p6Y.jpg)
-
-# Problem Explanation
-Write an algorithm that will take an `array` for the first argument and return an `array` with all the  `object`s that matches all the properties and values in the `Object` passed as second parameter.
-
-## Hint: 1
-You may use `for` loop or the `Array.prototype.filter` method.
-- [http://devdocs.io/#q=js+for](http://devdocs.io/#q=js+for)
-- [http://devdocs.io/#q=js+Array+filter](http://devdocs.io/#q=js+Array+filter)
-
-## Hint: 2
-Try to use `Object.prototype.hasOwnProperty` method to know if the property name exists in an object (as its own property).
-- [http://devdocs.io/#q=js+Object+hasOwnProperty](http://devdocs.io/#q=js+Object+hasOwnProperty)
-
-## Hint: 3
-Check equivalence of `Object` in `collection` with `Object` passed as second parameter to `where` function.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-### First
-
-```js
-function where(collection, source) {
-  // "What's in a name? that which we call a rose
-  // By any other name would smell as sweet.”
-  // -- by William Shakespeare, Romeo and Juliet
-  var srcKeys = Object.keys(source);
-
-  // filter the collection
-  return collection.filter(function (obj) {
-    for(var i = 0; i < srcKeys.length; i++) {
-      // check if obj in collection doesn't have the key
-      // or if it does have the key,
-      // then check if the property value doesn't match the value in source
-      if(!obj.hasOwnProperty(srcKeys[i]) || obj[srcKeys[i]] !== source[srcKeys[i]]) {
-        return false;
-      }
-    }
-    return true;
-  });
-}
-```
-
-### Second
-
-```js
-function where(collection, source) {
-  // "What's in a name? that which we call a rose
-  // By any other name would smell as sweet.”
-  // -- by William Shakespeare, Romeo and Juliet
-  var srcKeys = Object.keys(source);
-
-  // filter the collection
-  return collection.filter(function (obj) {
-    // return a Boolean value for `filter` method
-    return srcKeys.every(function (key) {
-      // reduce to Boolean value to be returned for `every` method
-      return obj.hasOwnProperty(key) && obj[key] === source[key];
-    });
-  });
-}
-```
-
-### Third
-
-```js
-function where(collection, source) {
-  // "What's in a name? that which we call a rose
-  // By any other name would smell as sweet.”
-  // -- by William Shakespeare, Romeo and Juliet
-  var srcKeys = Object.keys(source);
-
-  // filter the collection
-  return collection.filter(function (obj) {
-    // return a Boolean value for filter callback using reduce method
-    return srcKeys.reduce(function (res, key) {
-      // reduce to Boolean value to be returned by reduce method
-      return obj.hasOwnProperty(key) && obj[key] === source[key];
-    }, false);
-  });
-}
-```
-
-## Code Explanation:
-> Please read the comments in the source code.
-
-Check this http://repl.it/BFZQ/19 for pretty debugging and code explanation
-
-# Credits:
+![](http://i.imgur.com/IUY2p6Y.jpg)
+
+# Problem Explanation
+Write an algorithm that will take an `array` for the first argument and return an `array` with all the  `object`s that matches all the properties and values in the `Object` passed as second parameter.
+
+## Hint: 1
+You may use `for` loop or the `Array.prototype.filter` method.
+- [http://devdocs.io/#q=js+for](http://devdocs.io/#q=js+for)
+- [http://devdocs.io/#q=js+Array+filter](http://devdocs.io/#q=js+Array+filter)
+
+## Hint: 2
+Try to use `Object.prototype.hasOwnProperty` method to know if the property name exists in an object (as its own property).
+- [http://devdocs.io/#q=js+Object+hasOwnProperty](http://devdocs.io/#q=js+Object+hasOwnProperty)
+
+## Hint: 3
+Check equivalence of `Object` in `collection` with `Object` passed as second parameter to `where` function.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+### First
+
+```js
+function where(collection, source) {
+  // "What's in a name? that which we call a rose
+  // By any other name would smell as sweet.”
+  // -- by William Shakespeare, Romeo and Juliet
+  var srcKeys = Object.keys(source);
+
+  // filter the collection
+  return collection.filter(function (obj) {
+    for(var i = 0; i < srcKeys.length; i++) {
+      // check if obj in collection doesn't have the key
+      // or if it does have the key,
+      // then check if the property value doesn't match the value in source
+      if(!obj.hasOwnProperty(srcKeys[i]) || obj[srcKeys[i]] !== source[srcKeys[i]]) {
+        return false;
+      }
+    }
+    return true;
+  });
+}
+```
+
+### Second
+
+```js
+function where(collection, source) {
+  // "What's in a name? that which we call a rose
+  // By any other name would smell as sweet.”
+  // -- by William Shakespeare, Romeo and Juliet
+  var srcKeys = Object.keys(source);
+
+  // filter the collection
+  return collection.filter(function (obj) {
+    // return a Boolean value for `filter` method
+    return srcKeys.every(function (key) {
+      // reduce to Boolean value to be returned for `every` method
+      return obj.hasOwnProperty(key) && obj[key] === source[key];
+    });
+  });
+}
+```
+
+### Third
+
+```js
+function where(collection, source) {
+  // "What's in a name? that which we call a rose
+  // By any other name would smell as sweet.”
+  // -- by William Shakespeare, Romeo and Juliet
+  var srcKeys = Object.keys(source);
+
+  // filter the collection
+  return collection.filter(function (obj) {
+    // return a Boolean value for filter callback using reduce method
+    return srcKeys.reduce(function (res, key) {
+      // reduce to Boolean value to be returned by reduce method
+      return obj.hasOwnProperty(key) && obj[key] === source[key];
+    }, false);
+  });
+}
+```
+
+## Code Explanation:
+> Please read the comments in the source code.
+
+Check this http://repl.it/BFZQ/19 for pretty debugging and code explanation
+
+# Credits:
 If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @abhisekp @dting`
\ No newline at end of file
diff --git a/Bonfire-Where-do-I-belong.md b/Bonfire-Where-do-I-belong.md
index a19d3e7..f0a4370 100644
--- a/Bonfire-Where-do-I-belong.md
+++ b/Bonfire-Where-do-I-belong.md
@@ -1,58 +1,58 @@
-# Explanation:
-This can be a tricky problem to understand. You need to find where in the array a number should be inserted by order, and return the index where it should go.
-
-## Hint: 1
-The first thing to do is sort the array from lower to bigger, just to make the code easier. This is where sort comes in, it needs a callback function so you have to create it.
-
-## Hint: 2
-Once the array is sorted, then just check for the first number that is bigger and return the index.
-
-## Hint: 3
-If there is no index for that number then you will have to deal with that case too.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function where(arr, num) {
-  arr.sort(function(a, b) {
-    return a - b;
-  });
-
-  for (var a = 0; a < arr.length; a++) {
-    if (arr[a] >= num)
-      return parseInt(a);
-  }
-
-  return arr.length;
-}
-```
-
-# Code Explanation:
-- First I sort the array using `.sort(callbackFuntion)` to sort it by lowest to highest, from left to right.
-- Then I use a for loop to compare the items in the array starting from the smallest one. When an item on the array is greater than the number we are comparing against, then we return the index as an integer.
-
-## Code Solution 2:
-
-```js
-function where(arr, num) {
-  arr.push(num);
-  arr.sort(function(a, b)
-           {return a-b}
-          );
-  return arr.indexOf(num);
- }
-```
-
-# Code Explanation:
-- First insert the number into the array using the `Array.push()` method.
-- Then use the numerical sort method to sort the elements of the array. in the end just return the index value of the number that was push earlier using the `Array.indexOf()` method.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282 and @rahul1992`
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Explanation:
+This can be a tricky problem to understand. You need to find where in the array a number should be inserted by order, and return the index where it should go.
+
+## Hint: 1
+The first thing to do is sort the array from lower to bigger, just to make the code easier. This is where sort comes in, it needs a callback function so you have to create it.
+
+## Hint: 2
+Once the array is sorted, then just check for the first number that is bigger and return the index.
+
+## Hint: 3
+If there is no index for that number then you will have to deal with that case too.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function where(arr, num) {
+  arr.sort(function(a, b) {
+    return a - b;
+  });
+
+  for (var a = 0; a < arr.length; a++) {
+    if (arr[a] >= num)
+      return parseInt(a);
+  }
+
+  return arr.length;
+}
+```
+
+# Code Explanation:
+- First I sort the array using `.sort(callbackFuntion)` to sort it by lowest to highest, from left to right.
+- Then I use a for loop to compare the items in the array starting from the smallest one. When an item on the array is greater than the number we are comparing against, then we return the index as an integer.
+
+## Code Solution 2:
+
+```js
+function where(arr, num) {
+  arr.push(num);
+  arr.sort(function(a, b)
+           {return a-b}
+          );
+  return arr.indexOf(num);
+ }
+```
+
+# Code Explanation:
+- First insert the number into the array using the `Array.push()` method.
+- Then use the numerical sort method to sort the elements of the array. in the end just return the index value of the number that was push earlier using the `Array.indexOf()` method.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282 and @rahul1992`
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/Bonfire-Wiki-Template.md b/Bonfire-Wiki-Template.md
index 2ffaaed..9d3231a 100644
--- a/Bonfire-Wiki-Template.md
+++ b/Bonfire-Wiki-Template.md
@@ -1,49 +1,49 @@
-**Foundational Agile Principles:**
-
-**_Individuals and interactions_** over processes and tools
-
-**_Working software _**over comprehensive
-
-_**Customer collaboration**_ over contract negotiation
-
-_**Responding to change **_ over following a plan
-
-
-
-
-## User-Stories
-User stories help us tie the needs of our users directly to features we implement in a
-conversational format. They **always** follow this syntax: _“As a User/Stakeholder , I need/want to be able to Do Something”_. This can result in some awkward stories for the “obvious” features like _“As a user, I need to be able to trust that my credit card information is secure.”_, but it is imperative that ALL features tie back to a story in order to allow us to effectively break the work down into manageable pieces.
-
-## Sprints
-A “Sprint” is a short (1-3 weeks) development cycle during which a number of stories or subtasks are targeted for completion by the end of the sprint. The idea behind “Sprinting” is to allow us to **deliver** a story to the project champion for feedback/approval. This iterative workflow ensures we get continuous buy-in from the project champion and we are delivering functionality that both works, and is valuable.
-
-## SCRUM
-At a basic level, SCRUM helps us stay focused and informed about what the status is on each assigned task as well as break down communication barriers. In many professional settings the work day begins with a “Daily Scrum”.  We will be following a weekly scrum to align with our sprints.  A common scrum failure is to attempt to problem solve during a scrum. Troubleshooting and brainstorming should always be done as a separate task from SCRUM.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-code here
-```
-
-# Code Explanation:
-- Explain your code here
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @username1 @username2 @yourusername`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
-
-## Here you can add any other information that is helpful or related.
-- Right here.
-
-### Important notes about this template.
-- This template can also be used for regular pages.
-- The author part has been removed. This is a collaboration page, while people can see who contributed by checking the revision, using the code for the credits will also benefits the contributors and your name will be there, so there is no longer any need to add your picture or links.
+**Foundational Agile Principles:**
+
+**_Individuals and interactions_** over processes and tools
+
+**_Working software _**over comprehensive
+
+_**Customer collaboration**_ over contract negotiation
+
+_**Responding to change **_ over following a plan
+
+
+
+
+## User-Stories
+User stories help us tie the needs of our users directly to features we implement in a
+conversational format. They **always** follow this syntax: _“As a User/Stakeholder , I need/want to be able to Do Something”_. This can result in some awkward stories for the “obvious” features like _“As a user, I need to be able to trust that my credit card information is secure.”_, but it is imperative that ALL features tie back to a story in order to allow us to effectively break the work down into manageable pieces.
+
+## Sprints
+A “Sprint” is a short (1-3 weeks) development cycle during which a number of stories or subtasks are targeted for completion by the end of the sprint. The idea behind “Sprinting” is to allow us to **deliver** a story to the project champion for feedback/approval. This iterative workflow ensures we get continuous buy-in from the project champion and we are delivering functionality that both works, and is valuable.
+
+## SCRUM
+At a basic level, SCRUM helps us stay focused and informed about what the status is on each assigned task as well as break down communication barriers. In many professional settings the work day begins with a “Daily Scrum”.  We will be following a weekly scrum to align with our sprints.  A common scrum failure is to attempt to problem solve during a scrum. Troubleshooting and brainstorming should always be done as a separate task from SCRUM.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+code here
+```
+
+# Code Explanation:
+- Explain your code here
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @username1 @username2 @yourusername`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+
+## Here you can add any other information that is helpful or related.
+- Right here.
+
+### Important notes about this template.
+- This template can also be used for regular pages.
+- The author part has been removed. This is a collaboration page, while people can see who contributed by checking the revision, using the code for the credits will also benefits the contributors and your name will be there, so there is no longer any need to add your picture or links.
 - If you have suggestions or comments about this template then feel free to contact [@Rafase282 in Gitter](https://gitter.im/Rafase282)
\ No newline at end of file
diff --git a/Bonus-SocketIO.md b/Bonus-SocketIO.md
index 9239114..6033349 100644
--- a/Bonus-SocketIO.md
+++ b/Bonus-SocketIO.md
@@ -1,9 +1,9 @@
-If you've gotten to the Stock Charting basejump you may have noticed that the bonus criteria is to have your stock list live update across clients. This can be accomplished with SocketIO, but that’s not all SocketIO can do. Remember earlier, I mentioned that when using *$http.post* you had to update your local array with the database's version of the item you were posting? SocketIO keeps a user’s browser environment synced with your database in realtime. This has two practical upshots:  
-
-1. You no longer have to manually update your local data with database data; it is all managed automatically
-2. You can push database changes live to users on different machines all at the same time  
-
-Even better, if you just include SocketIO when prompted during the yeoman angular-fullstack setup, there is absolutely no work involved to include it. It works out of the box, has a working demo on the **main/** route, and you can learn how to use it yourself by simply looking at how they include it in **main.controller.js** (so I won’t go any further into detail).
-
-[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/isLoggedInAsync())
+If you've gotten to the Stock Charting basejump you may have noticed that the bonus criteria is to have your stock list live update across clients. This can be accomplished with SocketIO, but that’s not all SocketIO can do. Remember earlier, I mentioned that when using *$http.post* you had to update your local array with the database's version of the item you were posting? SocketIO keeps a user’s browser environment synced with your database in realtime. This has two practical upshots:  
+
+1. You no longer have to manually update your local data with database data; it is all managed automatically
+2. You can push database changes live to users on different machines all at the same time  
+
+Even better, if you just include SocketIO when prompted during the yeoman angular-fullstack setup, there is absolutely no work involved to include it. It works out of the box, has a working demo on the **main/** route, and you can learn how to use it yourself by simply looking at how they include it in **main.controller.js** (so I won’t go any further into detail).
+
+[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/isLoggedInAsync())
 [NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Epilogue)
\ No newline at end of file
diff --git a/Bootstrap.md b/Bootstrap.md
index 812ab22..6fed165 100644
--- a/Bootstrap.md
+++ b/Bootstrap.md
@@ -1,5 +1,5 @@
-A frontend [CSS](https://github.com/bothelpers/kbase/wiki/css) framework.
-
-You can find out more [here](http://getbootstrap.com/)
-
-> related: css, frameworks
+A frontend [CSS](https://github.com/bothelpers/kbase/wiki/css) framework.
+
+You can find out more [here](http://getbootstrap.com/)
+
+> related: css, frameworks
diff --git a/Brownie-Points.md b/Brownie-Points.md
index bc991ba..3e34077 100644
--- a/Brownie-Points.md
+++ b/Brownie-Points.md
@@ -1,13 +1,13 @@
-The number beside your picture on Free Code Camp tells you how many Brownie Points you have.
-
-![A user profile picture next to a with Brownie Points score](http://i.imgur.com/SsvbkDH.png)
-
-There are three ways you can get Brownie Points:
-
-1. Complete challenges - you get one point per challenge you complete    
-1. Post relevant links on [Camper News](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Camper-News) - you get 1 point for posting a link, and another point for each upvote your link gets    
-1. Help other campers in chat - each time you help another camper and they thank you (by typing "thanks @yourname"), you will get a point    
-
-> Brownie Points help you look like the kind of person who codes a lot, shares relevant links, and helps people. 
-
+The number beside your picture on Free Code Camp tells you how many Brownie Points you have.
+
+![A user profile picture next to a with Brownie Points score](http://i.imgur.com/SsvbkDH.png)
+
+There are three ways you can get Brownie Points:
+
+1. Complete challenges - you get one point per challenge you complete    
+1. Post relevant links on [Camper News](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Camper-News) - you get 1 point for posting a link, and another point for each upvote your link gets    
+1. Help other campers in chat - each time you help another camper and they thank you (by typing "thanks @yourname"), you will get a point    
+
+> Brownie Points help you look like the kind of person who codes a lot, shares relevant links, and helps people. 
+
 *They also add to your [Streak](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/streak/).*
\ No newline at end of file
diff --git a/Camper-News.md b/Camper-News.md
index c8b8b2a..964cd40 100644
--- a/Camper-News.md
+++ b/Camper-News.md
@@ -1,11 +1,11 @@
-Camper News is a link sharing tool, based on popular collaborative filtering systems like Reddit and Hacker News.
-
-![Screenshot of Camper News](https://www.evernote.com/l/AlwvYXoOf89EbYXWEXRfUw-_yHdBwx2jLr8B/image.png)
-
-Camper News is intentionally simple. You can:
-
-1. Browse and search through the camper-submitted links
-1. Upvote links
-1. Submit links of your own
-
+Camper News is a link sharing tool, based on popular collaborative filtering systems like Reddit and Hacker News.
+
+![Screenshot of Camper News](https://www.evernote.com/l/AlwvYXoOf89EbYXWEXRfUw-_yHdBwx2jLr8B/image.png)
+
+Camper News is intentionally simple. You can:
+
+1. Browse and search through the camper-submitted links
+1. Upvote links
+1. Submit links of your own
+
 Our links are ranked in order of "hotness", which is a combination of each link's upvote count, and how recently the link was submitted.
\ No newline at end of file
diff --git a/Campsites.md b/Campsites.md
index e2c579b..4039f09 100644
--- a/Campsites.md
+++ b/Campsites.md
@@ -1,16 +1,16 @@
-![Photograph from a Toronto Campsite Coffee-and-Code Session](https://scontent.fphl1-1.fna.fbcdn.net/hphotos-xpf1/v/t1.0-0/p180x540/11053192_10207110849188137_979591694702042102_n.jpg?oh=608f68b3232d80608939091680efc4b9&oe=568AE433)
-
-Free Code Camp Campsites represent a localized experience of our community. These Facebook groups are the place to organize Coffee-and-Code style events, pair program locally in hack sessions, or share news about other coding-related events in your area. 
-
-Whether you live in a major metropolitan area, or a small town, we encourage you to join or create your campsite to meet other busy people learning to code. 
-
-Here are some helpful links:
-
-[Complete Alphabetical List of Campsites](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/List-of-Free-Code-Camp-city-based-Campsites)
-
-[How to Create a New Campsite for your City](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-to-create-a-Campsite-for-your-city)
-
-[Jumpstart Your Campsite with Coffee-and-Code](http://blog.freecodecamp.com/2015/09/jump-start-your-local-campsite-with-coffee-and-code.html)
-
-[5 Steps to a Successful Meetup](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/5-Steps-to-organizing-a-successful-Campsite-event.)
-
+![Photograph from a Toronto Campsite Coffee-and-Code Session](https://scontent.fphl1-1.fna.fbcdn.net/hphotos-xpf1/v/t1.0-0/p180x540/11053192_10207110849188137_979591694702042102_n.jpg?oh=608f68b3232d80608939091680efc4b9&oe=568AE433)
+
+Free Code Camp Campsites represent a localized experience of our community. These Facebook groups are the place to organize Coffee-and-Code style events, pair program locally in hack sessions, or share news about other coding-related events in your area. 
+
+Whether you live in a major metropolitan area, or a small town, we encourage you to join or create your campsite to meet other busy people learning to code. 
+
+Here are some helpful links:
+
+[Complete Alphabetical List of Campsites](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/List-of-Free-Code-Camp-city-based-Campsites)
+
+[How to Create a New Campsite for your City](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-to-create-a-Campsite-for-your-city)
+
+[Jumpstart Your Campsite with Coffee-and-Code](http://blog.freecodecamp.com/2015/09/jump-start-your-local-campsite-with-coffee-and-code.html)
+
+[5 Steps to a Successful Meetup](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/5-Steps-to-organizing-a-successful-Campsite-event.)
+
diff --git a/Clear-Your-Browser's-Local-Storage.md b/Clear-Your-Browser's-Local-Storage.md
index 0ced393..aa89ab5 100644
--- a/Clear-Your-Browser's-Local-Storage.md
+++ b/Clear-Your-Browser's-Local-Storage.md
@@ -1,14 +1,14 @@
-Removing all your locally stored challenges will solve many problems related to the browser crashing on FreeCodeCamp
-
-In Chrome:
-* On 'freecodecamp.com' open your console
- * Windows: Ctrl + Shift + J
- * Mac OS: Cmd + Opt + J
-* Go to resources tab(chrome). 
- * There click on the localStorage link in the nav bar on the right.
-* Delete all the entries on the right side. 
-* See if this solves your issue
-
-![](https://cloud.githubusercontent.com/assets/6775919/9448820/911626ee-4a53-11e5-98c9-b2bf4ca50816.png)
-
+Removing all your locally stored challenges will solve many problems related to the browser crashing on FreeCodeCamp
+
+In Chrome:
+* On 'freecodecamp.com' open your console
+ * Windows: Ctrl + Shift + J
+ * Mac OS: Cmd + Opt + J
+* Go to resources tab(chrome). 
+ * There click on the localStorage link in the nav bar on the right.
+* Delete all the entries on the right side. 
+* See if this solves your issue
+
+![](https://cloud.githubusercontent.com/assets/6775919/9448820/911626ee-4a53-11e5-98c9-b2bf4ca50816.png)
+
 Alternatively, if you are having issues with a specific challenge freezing your browser, [find the name of that challenge in local storage and delete just that one](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-to-clear-specific-values-from-your-browser's-local-storage).
\ No newline at end of file
diff --git a/Code-of-Conduct.md b/Code-of-Conduct.md
index fd6091f..fa19ed8 100644
--- a/Code-of-Conduct.md
+++ b/Code-of-Conduct.md
@@ -1,20 +1,20 @@
-Free Code Camp is friendly place to learn to code. We're committed to keeping it that way.
-
-All campers are required to agree with the following code of conduct. We'll enforce this code. We're expecting cooperation from all campers in ensuring a friendly environment for everybody.
-
-In short: be nice to your fellow campers.
-
-Remember these 3 things and your fellow campers will like you:
-- Compliment your fellow campers when they do good work. Congratulate them when they accomplish something (like completing one of our certifications or getting a job).
-- Critique the work, not the camper doing it.
-- Only argue about something if it's important to the greater discussion.
-
-Free Code Camp should be a harassment-free experience for everyone, regardless of gender, gender identity and expression, age, sexual orientation, disability, physical appearance, body size, race, national origin, or religion (or lack thereof).
-
-We do not tolerate harassment of campers in any form, anywhere on Free Code Camp's online media (Gitter, Twitch, Facebook, etc.) or during pair programming. Harassment includes sexual language and imagery, deliberate intimidation, stalking, unwelcome sexual attention, libel, and any malicious hacking or social engineering.
-
-If a camper engages in harassing behavior, our team will take any action we deem appropriate, up to and including banning them from Free Code Camp.
-
-We want everyone to feel safe and respected. If you are being harassed or notice that someone else is being harassed, say something! Message @quincylarson, @brianamarie and @codenonprofit in Gitter (preferably with a screen shot of the offending language) so we can take fast action.
-
+Free Code Camp is friendly place to learn to code. We're committed to keeping it that way.
+
+All campers are required to agree with the following code of conduct. We'll enforce this code. We're expecting cooperation from all campers in ensuring a friendly environment for everybody.
+
+In short: be nice to your fellow campers.
+
+Remember these 3 things and your fellow campers will like you:
+- Compliment your fellow campers when they do good work. Congratulate them when they accomplish something (like completing one of our certifications or getting a job).
+- Critique the work, not the camper doing it.
+- Only argue about something if it's important to the greater discussion.
+
+Free Code Camp should be a harassment-free experience for everyone, regardless of gender, gender identity and expression, age, sexual orientation, disability, physical appearance, body size, race, national origin, or religion (or lack thereof).
+
+We do not tolerate harassment of campers in any form, anywhere on Free Code Camp's online media (Gitter, Twitch, Facebook, etc.) or during pair programming. Harassment includes sexual language and imagery, deliberate intimidation, stalking, unwelcome sexual attention, libel, and any malicious hacking or social engineering.
+
+If a camper engages in harassing behavior, our team will take any action we deem appropriate, up to and including banning them from Free Code Camp.
+
+We want everyone to feel safe and respected. If you are being harassed or notice that someone else is being harassed, say something! Message @quincylarson, @brianamarie and @codenonprofit in Gitter (preferably with a screen shot of the offending language) so we can take fast action.
+
 If you have questions about this code of conduct, email us at [team@freecodecamp.com](mailto:team@freecodecamp.com).
\ No newline at end of file
diff --git a/Coding-Help.md b/Coding-Help.md
index f811934..5739ca8 100644
--- a/Coding-Help.md
+++ b/Coding-Help.md
@@ -1,21 +1,21 @@
-# Coding Help
-I started this list while doing bonfires, noticing a few things that were common issues / questions but I think most of them are going to be useful to people coding in general. If you've got some tips to help people code I'd love to hear them.
-
-1. If you don't know where to start, write some pseudocode. Plan out the logic you're trying to implement in your native language before you try to put it into code.
-
-2. Comment your code! Can't stress that one enough, if you get lost or take a break then come back you need to know what your code is trying to do. It will also reinforce what the code means to you, and help other people understand what your code does if you get stuck and ask for help. If you've got a any other tips for campers I'd love to see them!
-
-3. Use the chrome javascript debugger console in conjunction with something like netbeans IDE or sublime text to write your code. Both are free to download. <br />
-The free code camp window is great but you can get a lot more feedback on your code's behaviour by using chrome's JS debugger and a bunch of **console.log(myVariableGoesHere);** <br />
-https://developer.chrome.com/devtools/docs/console <br />
-http://www.sublimetext.com/ <br />
-https://netbeans.org/downloads/
-
-4. Posting your code in gitter is as simple as adding a line consisting of only
-> \`\`\`
->     
-> Then your code on the next lines, followed by a final
->     
-> \`\`\`
-
+# Coding Help
+I started this list while doing bonfires, noticing a few things that were common issues / questions but I think most of them are going to be useful to people coding in general. If you've got some tips to help people code I'd love to hear them.
+
+1. If you don't know where to start, write some pseudocode. Plan out the logic you're trying to implement in your native language before you try to put it into code.
+
+2. Comment your code! Can't stress that one enough, if you get lost or take a break then come back you need to know what your code is trying to do. It will also reinforce what the code means to you, and help other people understand what your code does if you get stuck and ask for help. If you've got a any other tips for campers I'd love to see them!
+
+3. Use the chrome javascript debugger console in conjunction with something like netbeans IDE or sublime text to write your code. Both are free to download. <br />
+The free code camp window is great but you can get a lot more feedback on your code's behaviour by using chrome's JS debugger and a bunch of **console.log(myVariableGoesHere);** <br />
+https://developer.chrome.com/devtools/docs/console <br />
+http://www.sublimetext.com/ <br />
+https://netbeans.org/downloads/
+
+4. Posting your code in gitter is as simple as adding a line consisting of only
+> \`\`\`
+>     
+> Then your code on the next lines, followed by a final
+>     
+> \`\`\`
+
 5. Ask for help in gitter! I can personally relate to staring at a problem for hours, then seeing the solution as soon as I try to explain it to someone, or having someone say something like "typo on line 6" as soon as they see it.
\ No newline at end of file
diff --git a/Contributions-Guide---with-Typo-Demo.md b/Contributions-Guide---with-Typo-Demo.md
index 33e73fb..27659cc 100644
--- a/Contributions-Guide---with-Typo-Demo.md
+++ b/Contributions-Guide---with-Typo-Demo.md
@@ -1,260 +1,260 @@
-
-# Detailed Guide to Contributions.
-===================================
- Guide first posted at [Sean Campbell's Blog](https://natacseanc.wordpress.com/2015/09/07/beginners-guide-to-easy-contributions-to-free-code-camp/) 
-
-The first 2 steps are *setting up* the environment. 
-
-### Step 1: Fork, Clone, Upstream Setup
-
-First - fork the [Free Code Camp repo](https://github.com/FreeCodeCamp/FreeCodeCamp) to your GitHub account. Done by clicking the fork button at the top right of the page. You see a little animated image of the &#039;forking&#039;. From there move to terminal. Running the commands below will create a copy of the Free Code Camp repo you just forked.
-
-```bash
-git clone https://github.com/[USERNAME]/freecodecamp # put in your [USERNAME]
-cd freecodecamp
-git remote add upstream https://github.com/FreeCodeCamp/FreeCodeCamp
-```
-
-The first line clones the repo to your local machine; making a directory called `freecodecamp` in the current folder you are in. Then move inside that folder with `cd freecodecamp`. The last line adds the original Free Code Camp repo as a remote upstream. This allows you to pull in the changes that are made to the main project to keep you local copy up to date. This is done by running...
-
-```bash
-git fetch upstream
-```
-
-If there were changes then run the commands below to merge; if nothing happens then skip these 2 commands.
-
-```bash
-git checkout staging # make sure I am on staging branch
-git merge upstream/staging # merge the changing to my local machine
-```
-
-Your local `staging` branch is up to date with the [Free Code Camp repo](https://github.com/FreeCodeCamp/FreeCodeCamp) now.
-
-### Step 2: Follow README.md Instructions for more Setup.
-
-This guide stresses importance of reading the [README.md](https://github.com/FreeCodeCamp/FreeCodeCamp#contributing) on contributing. Please have [ESlinter](http://eslint.org/docs/user-guide/integrations.html) running, as the warning are there to help you. 
-
-### Prerequisites
-
-- [MongoDB](http://www.mongodb.org/downloads)
-- [Node.js](http://nodejs.org)
-- [ESlinter](http://eslint.org/docs/user-guide/integrations.html)
-
-
-These commands are straight from the FCC directions on the README.md
-
-
-```bash
-# Install NPM dependencies
-npm install
-
-# Install bower globally
-npm install -g bower
-
-# Install Bower dependencies
-bower install
-
-# Install Gulp globally
-npm install -g gulp
-
-# Create a .env file
-touch .env
-```
-
-What goes in the .env file?? Well first if you do not have a [Mandrill account](https://mandrill.com/signup/?_ga=1.36983655.693747097.1440924471) you will need to set one up. 
-Mandrill is an email service that is beyond the scope of this guide. A quick note; this file will not be included when pushing to GitHub as it will be listed in the `.gitignore` file.
-
-#### .env file contents
-
-```
-
-MONGOHQ_URL='mongodb://localhost:27017/freecodecamp' // do not change
-
-FACEBOOK_ID=stuff
-FACEBOOK_SECRET=stuff
-
-GITHUB_ID=stuff
-GITHUB_SECRET=stuff
-
-GOOGLE_ID=stuff
-GOOGLE_SECRET=stuff
-
-LINKEDIN_ID=stuff
-LINKEDIN_SECRET=stuff
-
-MANDRILL_PASSWORD=stuff // Your mandrill password
-MANDRILL_USER=stuff // Your mandrill username
-
-TRELLO_KEY=stuff
-TRELLO_SECRET=stuff
-
-TWITTER_KEY=stuff
-TWITTER_SECRET=stuff
-TWITTER_TOKEN=stuff
-TWITTER_TOKEN_SECRET=stuff
-
-BLOGGER_KEY=stuff
-
-SESSION_SECRET=secretstuff // any word you like in small case I believe.
-COOKIE_SECRET='this is a secret'
-
-PEER=stuff
-DEBUG=true
-
-```
-
-### Setup is complete - next - the workflow of contributions
-=============================================================
-
-# Start of issue fixing
-
-### Part 3: Start MongoDB
-
-Open up two terminal windows, one to run the mongodb:
-
-```bash
-mongod
-```
-
-Then minimize this terminal and move to the other which will be the one to complete the workflow.
-
-```bash
-# run mongodb
-mongo
-
-# switch to the free code camp database
-use freecodecamp
-
-# exit mongo
-press Crtl + d
-```
-### Step 4: Finding Issue in the Code Base
-
-The issue on GitHub will look something like this.
-
-<a href="https://natacseanc.files.wordpress.com/2015/09/issue1.png"><img class="alignnone wp-image-161" src="https://natacseanc.files.wordpress.com/2015/09/issue1.png?w=300" alt="issue" width="456" height="205" /></a>
-
-
-To find out what file the challenge will be in go to the FCC Map to find out which section the challenge is a part of; the example is [Learn how Script Tags and Document Ready Work](http://freecodecamp.com/challenges/waypoint-learn-how-script-tags-and-document-ready-work) and it is a part of the jQuery section.
-
-<a href="https://natacseanc.files.wordpress.com/2015/09/section.png"><img class="alignnone size-medium wp-image-164" src="https://natacseanc.files.wordpress.com/2015/09/section.png?w=300" alt="section" width="300" height="262" /></a>
-
-The actual data for each challenge is located in the `seed/challenges/` directory. In this folder there are `.json` files. Each file is named for the section of challenges. So for this demo you need to be in the `jQuery.json` file.
-
-<a href="https://natacseanc.files.wordpress.com/2015/09/files.png"><img src="https://natacseanc.files.wordpress.com/2015/09/files.png?w=287" alt="files" width="287" height="300" class="alignnone size-medium wp-image-171" /></a>
-
-The file itself is of an object that has a `challenges` attribute which is a list of challenge objects. These have key/value pairs of the title, description, test, and other info that is needed for the other code to build the actual challenge.<a href="https://natacseanc.files.wordpress.com/2015/09/json1.png"><img class="alignnone size-large wp-image-159" src="https://natacseanc.files.wordpress.com/2015/09/json1.png?w=809" alt="JSON" width="809" height="665" /></a>
-
-
-To fix a simple typo in the test output you should do a search for the challenge then navigate to the `"test":` key to find the error. The test is explained in the next part. Any text wrapped in the `<code>` tags will appear in the red text that you see in the challenge description or test output.
-
-<a href="https://natacseanc.files.wordpress.com/2015/09/codetag.png"><img class="alignnone size-full wp-image-140" src="https://natacseanc.files.wordpress.com/2015/09/codetag.png" alt="codeTag" width="384" height="206" /></a>
-
-### Step 5: Making the Change
-
-Go to your terminal and run the command below to make sure that nothing has changed to the main code base
-
-```bash
-git fetch upstream
-```
-
-If there was a change then merge in like Step 1. Create a branch that explains the change ie `fix/typo-jquery-challenge-test`. Include a brief description of the changes you have made. Include `closes #1337` for each issue that this pull request intends to close.
-
-```bash
-# create and move to branch
-git checkout -b fix/typo-jquery-challange-test
-```
-
-Open the `jQuery.json` file; the issue that you is that there is parenthesis in the test output that should not be there. Each test has two parts to the `assert()` method. The first is the test(s), the second part which is separated by a comma is the output description. Please note this picture shows after the change has been made.
-
-<a href="https://natacseanc.files.wordpress.com/2015/09/test.png"><img class="alignnone size-full wp-image-131" src="https://natacseanc.files.wordpress.com/2015/09/test.png" alt="test" width="809" height="18" /></a>
-
-The test is the `editor.match(/\\.parent\\(\\)\\.css/g)`, where the description section is `'You should use the <code>.parent()</code> function to modify this element.'`. The issue is that in the description section there are actual `(` and `)`. Meaning the code used to be.
-
-<a href="https://natacseanc.files.wordpress.com/2015/09/testbad.png"><img class="alignnone size-full wp-image-130" src="https://natacseanc.files.wordpress.com/2015/09/testbad.png" alt="testbad" width="809" height="17" /></a>
-
-This causes the strange outputs that occur in the tests. By using the right [character code](http://character-code.com/) you will be able to replace the parenthesis and the period. At this point save the file but do **not** stage or commit anything with Git yet; you **will want** to run the app locally and see if the changes worked!
-
-### Step 6: Run Free Code Camp App Locally
-
-Mental check that part 3 was done if not do it now. Then:
-
-```bash
-# Seed database with the challenges
-node seed/
-
-# start the application
-gulp
-```
-
-The gulp command will take a second or too then there will be a IP address that I right click and open in my browser. Now I will navigate to that challenge to verify the changes were what I expected. This is the purple local URL:
-
-<a href="https://natacseanc.files.wordpress.com/2015/09/ipadress.png"><img class="alignnone size-full wp-image-137" src="https://natacseanc.files.wordpress.com/2015/09/ipadress.png" alt="ipadress" width="674" height="100" /></a>
-
-### Step 7: Creating Pull Request
-
-After making changes and verification of you work run:
-
-```bash
-# check status for piece of mind to see unstaged changes
-git status
-
-#check if anything changed in upstream
-git fetch upstream
-# ASSUMING no changes I can proceed.
-# if there are changes see Appendix A about stash.
-# DO NOT continue if there are changes as you may create conflicts
-
-# stage the file
-git add [FILENAME]
-
-# commit changes
-git commit
-```
-
-You can have [Git open up Sublime when you want to commit a message.](https://help.github.com/articles/associating-text-editors-with-git/). This allows and encourages meaningful commit messages. Make a title on the first line then go into more detail on new lines. So for this demo the message would be something like:
-
-```
-fix typo on [CHALLENGE]
-
-there were unnecessary parenthesis in the test outputs
-closes #1337
-```
-
-You are able to auto [close the issue when the PR is merged into the code base](https://help.github.com/articles/closing-issues-via-commit-messages/). Save and close the commit message file; brings you back to the terminal
-
-```bash
-git push -u origin fix/typo-jquery-test
-# where the part after origin is what ever you called the local branch
-```
-
-Now the changes are on both you local machine and you GitHub account. Opening up a browser you can navigate to the forked copy on your GitHub account. There will be a green button just above the listing of files on the right that read Compare & Pull Request.
-
-<img class="alignnone size-full wp-image-139" src="https://natacseanc.files.wordpress.com/2015/09/compare.png" alt="compare" width="500" height="203" />
-
-Clicking this takes you to the screen where you can review the changes once again and finalize the commit message. Then wait for the code to be merged in or possibly some tips on how to improve the changes.
-
-<img class="alignnone size-full wp-image-132" src="https://natacseanc.files.wordpress.com/2015/09/pr.png" alt="pr" width="600" height="489" />
-
-Guide written by: [@natac13](https://github.com/natac13) on Twitter [@natac1311](https://twitter.com/?lang=en) 
-
-### Appendix A: Stash
-
-Short explanation on what happens if during the time you were making changes there were some merged into the [`upstream`](https://github.com/FreeCodeCamp/FreeCodeCamp). Meaning your local copy is not up to date. This puts you right **before** adding any files to be *staged* or *committed*. So:
-
-```bash
-# check changes to upstream
-git fetch upstream
-# changes have happened
-
-# stash your changes
-git stash
-
-# merge upstream into the working branch
-git merge upstream/staging
-
-# reapply you changes
-git stash apply
-```
-
-You are now back up to date with your changes ready to be staged and committed. [Git docs on stash](https://git-scm.com/book/en/v1/Git-Tools-Stashing).
+
+# Detailed Guide to Contributions.
+===================================
+ Guide first posted at [Sean Campbell's Blog](https://natacseanc.wordpress.com/2015/09/07/beginners-guide-to-easy-contributions-to-free-code-camp/) 
+
+The first 2 steps are *setting up* the environment. 
+
+### Step 1: Fork, Clone, Upstream Setup
+
+First - fork the [Free Code Camp repo](https://github.com/FreeCodeCamp/FreeCodeCamp) to your GitHub account. Done by clicking the fork button at the top right of the page. You see a little animated image of the &#039;forking&#039;. From there move to terminal. Running the commands below will create a copy of the Free Code Camp repo you just forked.
+
+```bash
+git clone https://github.com/[USERNAME]/freecodecamp # put in your [USERNAME]
+cd freecodecamp
+git remote add upstream https://github.com/FreeCodeCamp/FreeCodeCamp
+```
+
+The first line clones the repo to your local machine; making a directory called `freecodecamp` in the current folder you are in. Then move inside that folder with `cd freecodecamp`. The last line adds the original Free Code Camp repo as a remote upstream. This allows you to pull in the changes that are made to the main project to keep you local copy up to date. This is done by running...
+
+```bash
+git fetch upstream
+```
+
+If there were changes then run the commands below to merge; if nothing happens then skip these 2 commands.
+
+```bash
+git checkout staging # make sure I am on staging branch
+git merge upstream/staging # merge the changing to my local machine
+```
+
+Your local `staging` branch is up to date with the [Free Code Camp repo](https://github.com/FreeCodeCamp/FreeCodeCamp) now.
+
+### Step 2: Follow README.md Instructions for more Setup.
+
+This guide stresses importance of reading the [README.md](https://github.com/FreeCodeCamp/FreeCodeCamp#contributing) on contributing. Please have [ESlinter](http://eslint.org/docs/user-guide/integrations.html) running, as the warning are there to help you. 
+
+### Prerequisites
+
+- [MongoDB](http://www.mongodb.org/downloads)
+- [Node.js](http://nodejs.org)
+- [ESlinter](http://eslint.org/docs/user-guide/integrations.html)
+
+
+These commands are straight from the FCC directions on the README.md
+
+
+```bash
+# Install NPM dependencies
+npm install
+
+# Install bower globally
+npm install -g bower
+
+# Install Bower dependencies
+bower install
+
+# Install Gulp globally
+npm install -g gulp
+
+# Create a .env file
+touch .env
+```
+
+What goes in the .env file?? Well first if you do not have a [Mandrill account](https://mandrill.com/signup/?_ga=1.36983655.693747097.1440924471) you will need to set one up. 
+Mandrill is an email service that is beyond the scope of this guide. A quick note; this file will not be included when pushing to GitHub as it will be listed in the `.gitignore` file.
+
+#### .env file contents
+
+```
+
+MONGOHQ_URL='mongodb://localhost:27017/freecodecamp' // do not change
+
+FACEBOOK_ID=stuff
+FACEBOOK_SECRET=stuff
+
+GITHUB_ID=stuff
+GITHUB_SECRET=stuff
+
+GOOGLE_ID=stuff
+GOOGLE_SECRET=stuff
+
+LINKEDIN_ID=stuff
+LINKEDIN_SECRET=stuff
+
+MANDRILL_PASSWORD=stuff // Your mandrill password
+MANDRILL_USER=stuff // Your mandrill username
+
+TRELLO_KEY=stuff
+TRELLO_SECRET=stuff
+
+TWITTER_KEY=stuff
+TWITTER_SECRET=stuff
+TWITTER_TOKEN=stuff
+TWITTER_TOKEN_SECRET=stuff
+
+BLOGGER_KEY=stuff
+
+SESSION_SECRET=secretstuff // any word you like in small case I believe.
+COOKIE_SECRET='this is a secret'
+
+PEER=stuff
+DEBUG=true
+
+```
+
+### Setup is complete - next - the workflow of contributions
+=============================================================
+
+# Start of issue fixing
+
+### Part 3: Start MongoDB
+
+Open up two terminal windows, one to run the mongodb:
+
+```bash
+mongod
+```
+
+Then minimize this terminal and move to the other which will be the one to complete the workflow.
+
+```bash
+# run mongodb
+mongo
+
+# switch to the free code camp database
+use freecodecamp
+
+# exit mongo
+press Crtl + d
+```
+### Step 4: Finding Issue in the Code Base
+
+The issue on GitHub will look something like this.
+
+<a href="https://natacseanc.files.wordpress.com/2015/09/issue1.png"><img class="alignnone wp-image-161" src="https://natacseanc.files.wordpress.com/2015/09/issue1.png?w=300" alt="issue" width="456" height="205" /></a>
+
+
+To find out what file the challenge will be in go to the FCC Map to find out which section the challenge is a part of; the example is [Learn how Script Tags and Document Ready Work](http://freecodecamp.com/challenges/waypoint-learn-how-script-tags-and-document-ready-work) and it is a part of the jQuery section.
+
+<a href="https://natacseanc.files.wordpress.com/2015/09/section.png"><img class="alignnone size-medium wp-image-164" src="https://natacseanc.files.wordpress.com/2015/09/section.png?w=300" alt="section" width="300" height="262" /></a>
+
+The actual data for each challenge is located in the `seed/challenges/` directory. In this folder there are `.json` files. Each file is named for the section of challenges. So for this demo you need to be in the `jQuery.json` file.
+
+<a href="https://natacseanc.files.wordpress.com/2015/09/files.png"><img src="https://natacseanc.files.wordpress.com/2015/09/files.png?w=287" alt="files" width="287" height="300" class="alignnone size-medium wp-image-171" /></a>
+
+The file itself is of an object that has a `challenges` attribute which is a list of challenge objects. These have key/value pairs of the title, description, test, and other info that is needed for the other code to build the actual challenge.<a href="https://natacseanc.files.wordpress.com/2015/09/json1.png"><img class="alignnone size-large wp-image-159" src="https://natacseanc.files.wordpress.com/2015/09/json1.png?w=809" alt="JSON" width="809" height="665" /></a>
+
+
+To fix a simple typo in the test output you should do a search for the challenge then navigate to the `"test":` key to find the error. The test is explained in the next part. Any text wrapped in the `<code>` tags will appear in the red text that you see in the challenge description or test output.
+
+<a href="https://natacseanc.files.wordpress.com/2015/09/codetag.png"><img class="alignnone size-full wp-image-140" src="https://natacseanc.files.wordpress.com/2015/09/codetag.png" alt="codeTag" width="384" height="206" /></a>
+
+### Step 5: Making the Change
+
+Go to your terminal and run the command below to make sure that nothing has changed to the main code base
+
+```bash
+git fetch upstream
+```
+
+If there was a change then merge in like Step 1. Create a branch that explains the change ie `fix/typo-jquery-challenge-test`. Include a brief description of the changes you have made. Include `closes #1337` for each issue that this pull request intends to close.
+
+```bash
+# create and move to branch
+git checkout -b fix/typo-jquery-challange-test
+```
+
+Open the `jQuery.json` file; the issue that you is that there is parenthesis in the test output that should not be there. Each test has two parts to the `assert()` method. The first is the test(s), the second part which is separated by a comma is the output description. Please note this picture shows after the change has been made.
+
+<a href="https://natacseanc.files.wordpress.com/2015/09/test.png"><img class="alignnone size-full wp-image-131" src="https://natacseanc.files.wordpress.com/2015/09/test.png" alt="test" width="809" height="18" /></a>
+
+The test is the `editor.match(/\\.parent\\(\\)\\.css/g)`, where the description section is `'You should use the <code>.parent()</code> function to modify this element.'`. The issue is that in the description section there are actual `(` and `)`. Meaning the code used to be.
+
+<a href="https://natacseanc.files.wordpress.com/2015/09/testbad.png"><img class="alignnone size-full wp-image-130" src="https://natacseanc.files.wordpress.com/2015/09/testbad.png" alt="testbad" width="809" height="17" /></a>
+
+This causes the strange outputs that occur in the tests. By using the right [character code](http://character-code.com/) you will be able to replace the parenthesis and the period. At this point save the file but do **not** stage or commit anything with Git yet; you **will want** to run the app locally and see if the changes worked!
+
+### Step 6: Run Free Code Camp App Locally
+
+Mental check that part 3 was done if not do it now. Then:
+
+```bash
+# Seed database with the challenges
+node seed/
+
+# start the application
+gulp
+```
+
+The gulp command will take a second or too then there will be a IP address that I right click and open in my browser. Now I will navigate to that challenge to verify the changes were what I expected. This is the purple local URL:
+
+<a href="https://natacseanc.files.wordpress.com/2015/09/ipadress.png"><img class="alignnone size-full wp-image-137" src="https://natacseanc.files.wordpress.com/2015/09/ipadress.png" alt="ipadress" width="674" height="100" /></a>
+
+### Step 7: Creating Pull Request
+
+After making changes and verification of you work run:
+
+```bash
+# check status for piece of mind to see unstaged changes
+git status
+
+#check if anything changed in upstream
+git fetch upstream
+# ASSUMING no changes I can proceed.
+# if there are changes see Appendix A about stash.
+# DO NOT continue if there are changes as you may create conflicts
+
+# stage the file
+git add [FILENAME]
+
+# commit changes
+git commit
+```
+
+You can have [Git open up Sublime when you want to commit a message.](https://help.github.com/articles/associating-text-editors-with-git/). This allows and encourages meaningful commit messages. Make a title on the first line then go into more detail on new lines. So for this demo the message would be something like:
+
+```
+fix typo on [CHALLENGE]
+
+there were unnecessary parenthesis in the test outputs
+closes #1337
+```
+
+You are able to auto [close the issue when the PR is merged into the code base](https://help.github.com/articles/closing-issues-via-commit-messages/). Save and close the commit message file; brings you back to the terminal
+
+```bash
+git push -u origin fix/typo-jquery-test
+# where the part after origin is what ever you called the local branch
+```
+
+Now the changes are on both you local machine and you GitHub account. Opening up a browser you can navigate to the forked copy on your GitHub account. There will be a green button just above the listing of files on the right that read Compare & Pull Request.
+
+<img class="alignnone size-full wp-image-139" src="https://natacseanc.files.wordpress.com/2015/09/compare.png" alt="compare" width="500" height="203" />
+
+Clicking this takes you to the screen where you can review the changes once again and finalize the commit message. Then wait for the code to be merged in or possibly some tips on how to improve the changes.
+
+<img class="alignnone size-full wp-image-132" src="https://natacseanc.files.wordpress.com/2015/09/pr.png" alt="pr" width="600" height="489" />
+
+Guide written by: [@natac13](https://github.com/natac13) on Twitter [@natac1311](https://twitter.com/?lang=en) 
+
+### Appendix A: Stash
+
+Short explanation on what happens if during the time you were making changes there were some merged into the [`upstream`](https://github.com/FreeCodeCamp/FreeCodeCamp). Meaning your local copy is not up to date. This puts you right **before** adding any files to be *staged* or *committed*. So:
+
+```bash
+# check changes to upstream
+git fetch upstream
+# changes have happened
+
+# stash your changes
+git stash
+
+# merge upstream into the working branch
+git merge upstream/staging
+
+# reapply you changes
+git stash apply
+```
+
+You are now back up to date with your changes ready to be staged and committed. [Git docs on stash](https://git-scm.com/book/en/v1/Git-Tools-Stashing).
diff --git a/Create,-Upload-and-Link-Animated-GIF-Image.md b/Create,-Upload-and-Link-Animated-GIF-Image.md
index 61e6139..abd9522 100644
--- a/Create,-Upload-and-Link-Animated-GIF-Image.md
+++ b/Create,-Upload-and-Link-Animated-GIF-Image.md
@@ -1,7 +1,7 @@
-1. Download [LICEcap](http://www.cockos.com/licecap/) and install.
-2. Open and start recording to create animated GIF.
-3. Upload the `.gif` file in [EZGIF.com](http://ezgif.com/optimize).
-   - Crop, Resize and Optimize as many times or as required.
-4. Download animated GIF.
-5. Upload image to [imgur.com](http://imgur.com).
+1. Download [LICEcap](http://www.cockos.com/licecap/) and install.
+2. Open and start recording to create animated GIF.
+3. Upload the `.gif` file in [EZGIF.com](http://ezgif.com/optimize).
+   - Crop, Resize and Optimize as many times or as required.
+4. Download animated GIF.
+5. Upload image to [imgur.com](http://imgur.com).
 6. Link image using `![image title](http://i.imgur.com/RqgGcf5.gif)`.
\ No newline at end of file
diff --git a/Creating-a-New-Github-Issue.md b/Creating-a-New-Github-Issue.md
index eda76c3..a9e3ee2 100644
--- a/Creating-a-New-Github-Issue.md
+++ b/Creating-a-New-Github-Issue.md
@@ -1,14 +1,14 @@
-Before submitting an issue try [Searching for Your Issue on Github](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Searching-for-Your-Issue-on-Github)
-
-Crafting a good issue will make it much easier for the dev team to replicate and resolve your problem. Follow these steps to do it right:
-
-1. Go to FreeCodeCamp's [Github Issues](https://github.com/FreeCodeCamp/FreeCodeCamp/issues) page and click on `New Issue`.
-* **Have a useful title**
- * Write a meaningful title that describes the issue. Some good examples are `Logging in from the News and Field Guide pages doesn't redirect properly (using e-mail)` and `Typo: "for" instead of "while" loop`; bad examples include `A bug, HELP!!!11` and `I found this bug in a waypoint`.
- * Keep the title relatively short, the description is for further information. One example is to shorten long waypoint names, so instead of writing `Test case bug in 'Waypoint: Check Radio Buttons and Checkboxes by Default'`, you might want to write `Test case bug in 'Radio Buttons' waypoint`.
-* In the body, **provide a link** to the page on which you encountered this issue.
-* **Describe the problem** and **provide steps** so that a developer can try to replicate the issue.  Include your operating system and browser version.
- * When referencing other issues or pull requests, simply write #issue/pr-number.
-* Paste in any relevant code using proper [Code Formatting](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/code-formatting)
-* **Take a screenshot** of the issue and include it in the post.
+Before submitting an issue try [Searching for Your Issue on Github](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Searching-for-Your-Issue-on-Github)
+
+Crafting a good issue will make it much easier for the dev team to replicate and resolve your problem. Follow these steps to do it right:
+
+1. Go to FreeCodeCamp's [Github Issues](https://github.com/FreeCodeCamp/FreeCodeCamp/issues) page and click on `New Issue`.
+* **Have a useful title**
+ * Write a meaningful title that describes the issue. Some good examples are `Logging in from the News and Field Guide pages doesn't redirect properly (using e-mail)` and `Typo: "for" instead of "while" loop`; bad examples include `A bug, HELP!!!11` and `I found this bug in a waypoint`.
+ * Keep the title relatively short, the description is for further information. One example is to shorten long waypoint names, so instead of writing `Test case bug in 'Waypoint: Check Radio Buttons and Checkboxes by Default'`, you might want to write `Test case bug in 'Radio Buttons' waypoint`.
+* In the body, **provide a link** to the page on which you encountered this issue.
+* **Describe the problem** and **provide steps** so that a developer can try to replicate the issue.  Include your operating system and browser version.
+ * When referencing other issues or pull requests, simply write #issue/pr-number.
+* Paste in any relevant code using proper [Code Formatting](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/code-formatting)
+* **Take a screenshot** of the issue and include it in the post.
 * Click `Submit New Issue` and you are done! You will be automatically subscribed to notifications for any updates or future comments.
\ No newline at end of file
diff --git a/Creating-a-new-API-endpoint.md b/Creating-a-new-API-endpoint.md
index 7860dde..61e393a 100644
--- a/Creating-a-new-API-endpoint.md
+++ b/Creating-a-new-API-endpoint.md
@@ -1,5 +1,5 @@
-	>> yo angular-fullstack:endpoint whatsit
- Using this line, you get Yeoman to automatically generate another API endpoint and new kind of collection for your database. Now we have *things* as well as *whatsits*! Feel free to open up **/server/api/whatsit/whatsit.model.js** and define your whatsit however you like.
-
-[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Backend-file-structure)
+	>> yo angular-fullstack:endpoint whatsit
+ Using this line, you get Yeoman to automatically generate another API endpoint and new kind of collection for your database. Now we have *things* as well as *whatsits*! Feel free to open up **/server/api/whatsit/whatsit.model.js** and define your whatsit however you like.
+
+[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Backend-file-structure)
 [NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Fixing-exports.update)
\ No newline at end of file
diff --git a/Creating-a-new-directive.md b/Creating-a-new-directive.md
index f58ddb9..3c52e60 100644
--- a/Creating-a-new-directive.md
+++ b/Creating-a-new-directive.md
@@ -1,12 +1,12 @@
-Do you remember custom directives from the shaping up with angular course? You can also make a custom directive!
-
-	>> yo angular-fullstack:directive newdirective
-
-And if you need an html template for your custom directive (maybe you’re just making a directive to clean up your HTML code), tell it to make an html file when it prompts you to and you'll be able to include the contents of that template anywhere in your app with:
-
-~~~html
-<newdirective></newdirective>
-~~~
-
-[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-route)
+Do you remember custom directives from the shaping up with angular course? You can also make a custom directive!
+
+	>> yo angular-fullstack:directive newdirective
+
+And if you need an html template for your custom directive (maybe you’re just making a directive to clean up your HTML code), tell it to make an html file when it prompts you to and you'll be able to include the contents of that template anywhere in your app with:
+
+~~~html
+<newdirective></newdirective>
+~~~
+
+[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-route)
 [NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Grunt)
\ No newline at end of file
diff --git a/Creating-a-new-route.md b/Creating-a-new-route.md
index ae7760c..36c4030 100644
--- a/Creating-a-new-route.md
+++ b/Creating-a-new-route.md
@@ -1,10 +1,10 @@
-	>> yo angular-fullstack:route newpage 
-   Typing the above into your command-line will generate a **newpage/** route for your app! It automatically generates all the necessary files within your **/client/app/newpage** folder, like your **/client/app/main** folder, with a **newpage.controller.js**, **newpage.controller.spec.js**, **newpage.js**, and **newpage.html**. These all pretty much behave like the ones in the **main/** route. If you’re accessing the database in your newpage controller, you’ll want to add *$http* to the list of dependencies in **newpage.controller.js** the same way it’s included in **main.controller.js**: 
-
-~~~javascript
-angular.module('myApp')
-  .controller('MainCtrl', function ($scope, $http) { ...
-~~~
-
-[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Frontend-file-structure)
+	>> yo angular-fullstack:route newpage 
+   Typing the above into your command-line will generate a **newpage/** route for your app! It automatically generates all the necessary files within your **/client/app/newpage** folder, like your **/client/app/main** folder, with a **newpage.controller.js**, **newpage.controller.spec.js**, **newpage.js**, and **newpage.html**. These all pretty much behave like the ones in the **main/** route. If you’re accessing the database in your newpage controller, you’ll want to add *$http* to the list of dependencies in **newpage.controller.js** the same way it’s included in **main.controller.js**: 
+
+~~~javascript
+angular.module('myApp')
+  .controller('MainCtrl', function ($scope, $http) { ...
+~~~
+
+[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Frontend-file-structure)
 [NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-directive)
\ No newline at end of file
diff --git a/Develop-BaseJump-locally-and-run-on-c9.io.md b/Develop-BaseJump-locally-and-run-on-c9.io.md
index cb44255..4021f1f 100644
--- a/Develop-BaseJump-locally-and-run-on-c9.io.md
+++ b/Develop-BaseJump-locally-and-run-on-c9.io.md
@@ -1,8 +1,8 @@
-If you like me develop basejump locally and want it run on c9, this may help you.
-
-1. push your project to github
-2. create a new workspace in c9 and set 'Clone from Git or Mercurial URL (optional)' with your github repository URL. After submit your create page, c9 will clone your project for you.
-3. run `echo "export NODE_PATH=$NODE_PATH:/home/ubuntu/.nvm/v0.10.35/lib/node_modules" >> ~/.bashrc && source ~/.bashrc` in your c9 terminal window
-4. run `bower install && sudo npm install`
-5. run `mkdir data && echo 'mongod --bind_ip=$IP --dbpath=data --nojournal --rest "$@"' > mongod && chmod a+x mongod && ./mongod`
-6. run `grunt serve` in another terminal window
+If you like me develop basejump locally and want it run on c9, this may help you.
+
+1. push your project to github
+2. create a new workspace in c9 and set 'Clone from Git or Mercurial URL (optional)' with your github repository URL. After submit your create page, c9 will clone your project for you.
+3. run `echo "export NODE_PATH=$NODE_PATH:/home/ubuntu/.nvm/v0.10.35/lib/node_modules" >> ~/.bashrc && source ~/.bashrc` in your c9 terminal window
+4. run `bower install && sudo npm install`
+5. run `mkdir data && echo 'mongod --bind_ip=$IP --dbpath=data --nojournal --rest "$@"' > mongod && chmod a+x mongod && ./mongod`
+6. run `grunt serve` in another terminal window
diff --git a/Dynamic-URLs-using-$routeParams.md b/Dynamic-URLs-using-$routeParams.md
index f09508e..f6da741 100644
--- a/Dynamic-URLs-using-$routeParams.md
+++ b/Dynamic-URLs-using-$routeParams.md
@@ -1,30 +1,30 @@
-What if you have a lot of users posting *things* to your website? Maybe your users want to have a profile, or a wall, of the *things* they’ve posted, and they want to be able to share it with their friends with a url? You can do that, no biggie!
-
-Let’s say you used 
-
-	>> yo angular-fullstack:route wall
-
-to generate a <a href="#">http://myapp.wherever.com/wall/</a> route for your users. You want a link to <a href="#">http://myapp.wherever.com/wall/someUsername</a> to show a specific user’s *things*.  
-Browse to **/client/app/wall/wall.js** and notice that it detects what URL the user is requesting before acting on it:  
-
-~~~javascript
-$routeProvider.when('/wall', …
-~~~
-You can customize that path to catch when a user is trying to see a profile associated with a specific username like so:  
-
-~~~javascript
-$routeProvider.when('/wall/:username', …
-~~~
-The colon before "username" indicates that this is a variable, which is then passed to the *$routeParams* module. In **wall.controller.js**, include *$routeParams*:  
-
-~~~javascript
-.controller('WallCtrl', function ($scope, $routeParams) { …
-~~~
-Then later on in **wall.controller.js**, you can see what username was requested in the URL by referring to the variable generated by *$routeProvider* using something like  
-
-~~~javascript
-var wallOwner = $routeParams.username;
-~~~
-
-[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Quick-tip:-keep-data-in-sync)
+What if you have a lot of users posting *things* to your website? Maybe your users want to have a profile, or a wall, of the *things* they’ve posted, and they want to be able to share it with their friends with a url? You can do that, no biggie!
+
+Let’s say you used 
+
+	>> yo angular-fullstack:route wall
+
+to generate a <a href="#">http://myapp.wherever.com/wall/</a> route for your users. You want a link to <a href="#">http://myapp.wherever.com/wall/someUsername</a> to show a specific user’s *things*.  
+Browse to **/client/app/wall/wall.js** and notice that it detects what URL the user is requesting before acting on it:  
+
+~~~javascript
+$routeProvider.when('/wall', …
+~~~
+You can customize that path to catch when a user is trying to see a profile associated with a specific username like so:  
+
+~~~javascript
+$routeProvider.when('/wall/:username', …
+~~~
+The colon before "username" indicates that this is a variable, which is then passed to the *$routeParams* module. In **wall.controller.js**, include *$routeParams*:  
+
+~~~javascript
+.controller('WallCtrl', function ($scope, $routeParams) { …
+~~~
+Then later on in **wall.controller.js**, you can see what username was requested in the URL by referring to the variable generated by *$routeProvider* using something like  
+
+~~~javascript
+var wallOwner = $routeParams.username;
+~~~
+
+[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Quick-tip:-keep-data-in-sync)
 [NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/More-useful-APIs)
\ No newline at end of file
diff --git a/Edit-or-Delete-message.md b/Edit-or-Delete-message.md
index c2875d5..7ae9852 100644
--- a/Edit-or-Delete-message.md
+++ b/Edit-or-Delete-message.md
@@ -1,3 +1,3 @@
-> Editing or Deleting a previous message within 10 mins. of posting
-
+> Editing or Deleting a previous message within 10 mins. of posting
+
 ![How to delete message](http://i.imgur.com/gDivlLJ.gif)
\ No newline at end of file
diff --git a/Epilogue.md b/Epilogue.md
index ed91e40..691d6bf 100644
--- a/Epilogue.md
+++ b/Epilogue.md
@@ -1,13 +1,13 @@
-If you have any issues not covered in this guide: 
-
-1. google google google google duckduckgo
-2. bug @freecodecamp and me (@clnhll) on twitter
-3. did you miss a semicolon? a comma? 
-4. make a big loud stink in the freecodecamp help gitter.
-
-If you notice any inaccuracies or bad coding practices in this guide, please let me know ASAP! 
-
-I believe in you!
--[clnhll](https://github.com/clnhll)
-
+If you have any issues not covered in this guide: 
+
+1. google google google google duckduckgo
+2. bug @freecodecamp and me (@clnhll) on twitter
+3. did you miss a semicolon? a comma? 
+4. make a big loud stink in the freecodecamp help gitter.
+
+If you notice any inaccuracies or bad coding practices in this guide, please let me know ASAP! 
+
+I believe in you!
+-[clnhll](https://github.com/clnhll)
+
 [PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonus:-SocketIO)
\ No newline at end of file
diff --git a/Fixing-exports.update.md b/Fixing-exports.update.md
index 0cd449c..045886b 100644
--- a/Fixing-exports.update.md
+++ b/Fixing-exports.update.md
@@ -1,14 +1,14 @@
-As it turns out, in **thing.controller.js** as well as in any other endpoints you may generate, the *exports.update* function that is called when you make an *$http.put* call from your frontend to modify an existing database object is broken. This is a <a href="https://github.com/DaftMonk/generator-angular-fullstack/issues/310">known issue</a>, and can be fixed by changing the following line:
- 
-~~~javascript
-// Updates an existing thing in the DB.
-exports.update = function(req, res) { 
-...    
-    var updated = _.extend(thing, req.body); 
-    // change _.merge to _.extend
-... 
- };
-~~~
-
-[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-API-endpoint)
+As it turns out, in **thing.controller.js** as well as in any other endpoints you may generate, the *exports.update* function that is called when you make an *$http.put* call from your frontend to modify an existing database object is broken. This is a <a href="https://github.com/DaftMonk/generator-angular-fullstack/issues/310">known issue</a>, and can be fixed by changing the following line:
+ 
+~~~javascript
+// Updates an existing thing in the DB.
+exports.update = function(req, res) { 
+...    
+    var updated = _.extend(thing, req.body); 
+    // change _.merge to _.extend
+... 
+ };
+~~~
+
+[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-API-endpoint)
 [NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Accessing-the-database-from-your-frontend)
\ No newline at end of file
diff --git a/For-loops-Explained.md b/For-loops-Explained.md
index dc262f8..0c9137a 100644
--- a/For-loops-Explained.md
+++ b/For-loops-Explained.md
@@ -1,8 +1,8 @@
-## For Loops
-
-The for statement creates a loop that consists of three optional expressions, enclosed in parentheses and separated by semicolons, followed by a statement or a set of statements executed in the loop.
-
->Yeah that didn't make too much sense to me. Let's simplify this.
-
-### Why we need for loops?
-
+## For Loops
+
+The for statement creates a loop that consists of three optional expressions, enclosed in parentheses and separated by semicolons, followed by a statement or a set of statements executed in the loop.
+
+>Yeah that didn't make too much sense to me. Let's simplify this.
+
+### Why we need for loops?
+
diff --git a/Free-Code-Camp's-Privacy-Policy.md b/Free-Code-Camp's-Privacy-Policy.md
index 620ee0e..4b06535 100644
--- a/Free-Code-Camp's-Privacy-Policy.md
+++ b/Free-Code-Camp's-Privacy-Policy.md
@@ -1,53 +1,53 @@
-Free Code Camp is committed to respecting the privacy of visitors to our web sites and web applications. The guidelines below explain how we protect the privacy of visitors to FreeCodeCamp.com and its features.
-
-### Personally Identifiable Information
-
-Free Code Camp protects the identity of visitors to FreeCodeCamp.com by limiting the collection of personally identifiable information.
-
-Free Code Camp does not knowingly collect or solicit personally identifiable information from or about children under 13, except as permitted by law. If we discover we have received any information from a child under 13 in violation of this policy, we will delete that information immediately. If you believe Free Code Camp has any information from or about anyone under 13, please email us at [team@freecodecamp.com](mailto:team@freecodecamp.com).
-
-All personally identifiable information you provide to us is used by Free Code Camp and its team to process and manage your account, analyze the demographic of our users, or to deliver services through the site. 
-
-If you choose to provide personally identifiable information to us, you may receive occasional emails from us that are relevant to Free Code Camp, getting a job, or learning to code in general.
-Free Code Camp may also use other third-party providers to facilitate the delivery of the services described above, and these third-party providers may be supplied with or have access to personally identifiable information for the sole purpose of providing these services, to you on behalf of Free Code Camp.
-
-Free Code Camp may also disclose personally identifiable information in special legal circumstances. For instance, such information may be used where it is necessary to protect our copyright or intellectual property rights, or if the law requires us to do so.
-
-### Anonymous Information
-Anonymous aggregated data may be provided to other organizations we associate with for statistical purposes. For example, we may report to an organization that a certain percentage of our site's visitors are adults between the ages of 25 and 35.
-
-### Cookies and Beacons—Use by Free Code Camp; Opting Out
-We use cookies and software logs to monitor the use of FreeCodeCamp.com and to gather non-personal information about visitors to the site. Cookies are small files that Free Code Camp transfers to the hard drives of visitors for record-keeping purposes. These monitoring systems allow us to track general information about our visitors, such as the type of browsers (for example, Firefox or Internet Explorer), the operating systems (for instance, Windows or Macintosh), or the Internet providers (for instance, Comcast) they use. This information is used for statistical and market research purposes to tailor content to usage patterns and to provide services requested by our customers. To delete these cookies, please see your browser's privacy settings.
-
-A beacon is an electronic file object (typically a transparent image) placed in the code of a Web page. We use third party beacons to monitor the traffic patterns of visitors from one Free Code Camp.com page to another and to improve site performance.
-None of the information we gather in this way can be used to identify any individual who visits our site.
-
-### Security
-
-Any personally identifiable information collected through this site is stored on limited-access servers. We will maintain safeguards to protect these servers and the information they store.
-
-### Surveys
-We may occasionally conduct on-line surveys. All surveys are voluntary and you may decline to participate.
-
-### Copyright
-All of the content on FreeCodeCamp.com is copyrighted by Free Code Camp. If you'd like to redistribute it beyond simply sharing it through social media, please contact us at [team@freecodecamp.com](mailto:team@freecodecamp.com).
-
-### Contacting Us
-If you have questions about Free Code Camp, or to correct, update, or remove personally identifiable information, please email us at [team@freecodecamp.com](mailto:team@freecodecamp.com).
-
-### Links to Other Web sites
-Free Code Camp's sites each contain links to other Web sites. Free Code Camp is not responsible for the privacy practices or content of these third-party Web sites. We urge all FreeCodeCamp.com visitors to follow safe Internet practices: Do not supply Personally Identifiable Information to these Web sites unless you have verified their security and privacy policies.
-
-### Data Retention
-We retain your information for as long as necessary to permit us to use it for the purposes that we have communicated to you and comply with applicable law or regulations.
-
-### Business Transfers
-As we continue to develop our business, we might sell or buy subsidiaries, or business units. In such transactions, customer information generally is one of the transferred business assets but remains subject to the promises made in any pre-existing Privacy Policy (unless, of course, the customer consents otherwise). Also, in the unlikely event that Free Code Camp, or substantially all of its assets are acquired, customer information will be one of the transferred assets, and will remain subject to our Privacy Policy.
-
-### Your California Privacy Rights
-If you are a California resident, you are entitled to prevent sharing of your personal information with third parties for their own marketing purposes through a cost-free means. If you send a request to the address above, Free Code Camp will provide you with a California Customer Choice Notice that you may use to opt-out of such information sharing. To receive this notice, submit a written request to <a href="mailto:team@freecodecamp.com" target="_blank">team@freecodecamp.com</a>, specifying that you seek your &quot;California Customer Choice Notice.&quot; Please allow at least thirty (30) days for a response.
-
-### Acceptance of Privacy Policy Terms and Conditions
-By using this site, you signify your agreement to the terms and conditions of this FreeCodeCamp.com Privacy Policy. If you do not agree to these terms, please do not use this site. We reserve the right, at our sole discretion, to change, modify, add, or remove portions of this policy at any time. All amended terms automatically take effect 30 days after they are initially posted on the site. Please check this page periodically for any modifications. Your continued use of FreeCodeCamp.com following the posting of any changes to these terms shall mean that you have accepted those changes.
-
+Free Code Camp is committed to respecting the privacy of visitors to our web sites and web applications. The guidelines below explain how we protect the privacy of visitors to FreeCodeCamp.com and its features.
+
+### Personally Identifiable Information
+
+Free Code Camp protects the identity of visitors to FreeCodeCamp.com by limiting the collection of personally identifiable information.
+
+Free Code Camp does not knowingly collect or solicit personally identifiable information from or about children under 13, except as permitted by law. If we discover we have received any information from a child under 13 in violation of this policy, we will delete that information immediately. If you believe Free Code Camp has any information from or about anyone under 13, please email us at [team@freecodecamp.com](mailto:team@freecodecamp.com).
+
+All personally identifiable information you provide to us is used by Free Code Camp and its team to process and manage your account, analyze the demographic of our users, or to deliver services through the site. 
+
+If you choose to provide personally identifiable information to us, you may receive occasional emails from us that are relevant to Free Code Camp, getting a job, or learning to code in general.
+Free Code Camp may also use other third-party providers to facilitate the delivery of the services described above, and these third-party providers may be supplied with or have access to personally identifiable information for the sole purpose of providing these services, to you on behalf of Free Code Camp.
+
+Free Code Camp may also disclose personally identifiable information in special legal circumstances. For instance, such information may be used where it is necessary to protect our copyright or intellectual property rights, or if the law requires us to do so.
+
+### Anonymous Information
+Anonymous aggregated data may be provided to other organizations we associate with for statistical purposes. For example, we may report to an organization that a certain percentage of our site's visitors are adults between the ages of 25 and 35.
+
+### Cookies and Beacons—Use by Free Code Camp; Opting Out
+We use cookies and software logs to monitor the use of FreeCodeCamp.com and to gather non-personal information about visitors to the site. Cookies are small files that Free Code Camp transfers to the hard drives of visitors for record-keeping purposes. These monitoring systems allow us to track general information about our visitors, such as the type of browsers (for example, Firefox or Internet Explorer), the operating systems (for instance, Windows or Macintosh), or the Internet providers (for instance, Comcast) they use. This information is used for statistical and market research purposes to tailor content to usage patterns and to provide services requested by our customers. To delete these cookies, please see your browser's privacy settings.
+
+A beacon is an electronic file object (typically a transparent image) placed in the code of a Web page. We use third party beacons to monitor the traffic patterns of visitors from one Free Code Camp.com page to another and to improve site performance.
+None of the information we gather in this way can be used to identify any individual who visits our site.
+
+### Security
+
+Any personally identifiable information collected through this site is stored on limited-access servers. We will maintain safeguards to protect these servers and the information they store.
+
+### Surveys
+We may occasionally conduct on-line surveys. All surveys are voluntary and you may decline to participate.
+
+### Copyright
+All of the content on FreeCodeCamp.com is copyrighted by Free Code Camp. If you'd like to redistribute it beyond simply sharing it through social media, please contact us at [team@freecodecamp.com](mailto:team@freecodecamp.com).
+
+### Contacting Us
+If you have questions about Free Code Camp, or to correct, update, or remove personally identifiable information, please email us at [team@freecodecamp.com](mailto:team@freecodecamp.com).
+
+### Links to Other Web sites
+Free Code Camp's sites each contain links to other Web sites. Free Code Camp is not responsible for the privacy practices or content of these third-party Web sites. We urge all FreeCodeCamp.com visitors to follow safe Internet practices: Do not supply Personally Identifiable Information to these Web sites unless you have verified their security and privacy policies.
+
+### Data Retention
+We retain your information for as long as necessary to permit us to use it for the purposes that we have communicated to you and comply with applicable law or regulations.
+
+### Business Transfers
+As we continue to develop our business, we might sell or buy subsidiaries, or business units. In such transactions, customer information generally is one of the transferred business assets but remains subject to the promises made in any pre-existing Privacy Policy (unless, of course, the customer consents otherwise). Also, in the unlikely event that Free Code Camp, or substantially all of its assets are acquired, customer information will be one of the transferred assets, and will remain subject to our Privacy Policy.
+
+### Your California Privacy Rights
+If you are a California resident, you are entitled to prevent sharing of your personal information with third parties for their own marketing purposes through a cost-free means. If you send a request to the address above, Free Code Camp will provide you with a California Customer Choice Notice that you may use to opt-out of such information sharing. To receive this notice, submit a written request to <a href="mailto:team@freecodecamp.com" target="_blank">team@freecodecamp.com</a>, specifying that you seek your &quot;California Customer Choice Notice.&quot; Please allow at least thirty (30) days for a response.
+
+### Acceptance of Privacy Policy Terms and Conditions
+By using this site, you signify your agreement to the terms and conditions of this FreeCodeCamp.com Privacy Policy. If you do not agree to these terms, please do not use this site. We reserve the right, at our sole discretion, to change, modify, add, or remove portions of this policy at any time. All amended terms automatically take effect 30 days after they are initially posted on the site. Please check this page periodically for any modifications. Your continued use of FreeCodeCamp.com following the posting of any changes to these terms shall mean that you have accepted those changes.
+
 If you have any questions or concerns, please send an email to [team@freecodecamp.com](mailto:team@freecodecamp.com).
\ No newline at end of file
diff --git a/Free-Code-Camp-Deployment-Workflow.md b/Free-Code-Camp-Deployment-Workflow.md
index 835bda3..ebdc1fa 100644
--- a/Free-Code-Camp-Deployment-Workflow.md
+++ b/Free-Code-Camp-Deployment-Workflow.md
@@ -1,9 +1,9 @@
-1. All code is written and pushed to a branch on the developers' own fork of Free Code Camp.
-1. Developers create pull requests, pulling code from their branch to Free Code Camp's staging branch.
-1. Someone other than the person who submitted the pull request QA's the pull request and accepts it if everything is perfect. Otherwise they close the pull request with an explanation of why it isn't perfect, and the developer opens another pull request once they've fixed things.
-1. Staging is deployed to beta.freecodecamp.com by @berkeleytrue, @benmcmahon100 or @quincylarson periodically.
-1. Master is deployed to freecodecamp.com once the staging itself is fully QA'd.
-
-Notes: 
-- Currently freecodecamp.com and beta.freecodecamp.com share a database, so we must be careful about seeding data and manipulating it on beta.
+1. All code is written and pushed to a branch on the developers' own fork of Free Code Camp.
+1. Developers create pull requests, pulling code from their branch to Free Code Camp's staging branch.
+1. Someone other than the person who submitted the pull request QA's the pull request and accepts it if everything is perfect. Otherwise they close the pull request with an explanation of why it isn't perfect, and the developer opens another pull request once they've fixed things.
+1. Staging is deployed to beta.freecodecamp.com by @berkeleytrue, @benmcmahon100 or @quincylarson periodically.
+1. Master is deployed to freecodecamp.com once the staging itself is fully QA'd.
+
+Notes: 
+- Currently freecodecamp.com and beta.freecodecamp.com share a database, so we must be careful about seeding data and manipulating it on beta.
 - This is subject to change once we get better test coverage and continuous integration working.
\ No newline at end of file
diff --git a/Free-Code-Camp-Front-End-Development-Certificate.md b/Free-Code-Camp-Front-End-Development-Certificate.md
index bff9902..df37662 100644
--- a/Free-Code-Camp-Front-End-Development-Certificate.md
+++ b/Free-Code-Camp-Front-End-Development-Certificate.md
@@ -1,10 +1,10 @@
-### Here's how to earn our verified Front End Development Certificate:
-
-![An image of a sample Front End Development Certificate](http://i.imgur.com/UrU2ki8.png)
-
-1. Complete all of our current Basic Bonfires
-1. Complete all of our current Basic Ziplines
-1. Complete all of our current Intermediate Bonfires
-1. Complete all of our current Intermediate Ziplines
-
+### Here's how to earn our verified Front End Development Certificate:
+
+![An image of a sample Front End Development Certificate](http://i.imgur.com/UrU2ki8.png)
+
+1. Complete all of our current Basic Bonfires
+1. Complete all of our current Basic Ziplines
+1. Complete all of our current Intermediate Bonfires
+1. Complete all of our current Intermediate Ziplines
+
 Once you've completed all of the above, you can complete our "Claim your Front End Development Certificate" challenge, which will require you to sign our Academic Honesty Pledge. Then we will instantly issue your verified certificate, which will become accessible from your portfolio page.
\ No newline at end of file
diff --git a/Free-Code-Camp-Full-Stack-Development-Certificate.md b/Free-Code-Camp-Full-Stack-Development-Certificate.md
index e735b9b..6b82e1c 100644
--- a/Free-Code-Camp-Full-Stack-Development-Certificate.md
+++ b/Free-Code-Camp-Full-Stack-Development-Certificate.md
@@ -1,11 +1,11 @@
-In order to participate in our nonprofit projects, you first need to earn our Full Stack Development Certificate. This certificate signifies that you've completed the first 800 hours of our curriculum.
-
-![An image of a sample Front End Development Certificate](http://i.imgur.com/Dlv4qSZ.png)
-
-### Here's how to earn our verified Full Stack Development Certificate:
-
-1. Complete all our current Bonfire Challenges
-1. Complete all our current Zipline Challenges
-1. Complete all our current Basejump Challenges
-
+In order to participate in our nonprofit projects, you first need to earn our Full Stack Development Certificate. This certificate signifies that you've completed the first 800 hours of our curriculum.
+
+![An image of a sample Front End Development Certificate](http://i.imgur.com/Dlv4qSZ.png)
+
+### Here's how to earn our verified Full Stack Development Certificate:
+
+1. Complete all our current Bonfire Challenges
+1. Complete all our current Zipline Challenges
+1. Complete all our current Basejump Challenges
+
 Once you've completed all of the above, you can complete our "Claim your Full Stack Development Certificate" challenge, which will require you to sign our Academic Honesty Pledge. Then we will instantly issue your verified certificate, which will become accessible from your portfolio page.
\ No newline at end of file
diff --git a/Free-Code-Camp-JavaScript-Style-Guide.md b/Free-Code-Camp-JavaScript-Style-Guide.md
index c6f9a26..817f493 100644
--- a/Free-Code-Camp-JavaScript-Style-Guide.md
+++ b/Free-Code-Camp-JavaScript-Style-Guide.md
@@ -1,119 +1,119 @@
-# Free Code Camp Style Guide
-<small>or How Cool People Write JavaScript.</small>
-
-
-## indent
-  #alwaysUseTwoSpaces
-
-  no hard tabs, ever. No really, just don't do it.
-
-## curly braces
-Always use curly braces when using the keywords `if/else/else if`. This prevents a lot of ambiguity and will prevent syntax errors in some edge cases.
-
-Bad:
-```js
-if (foo) bar();
-```
-Good:
-```js
-if (foo) { bar(); }
-#curlyBracesEverywhere!
-
-## space after `function` keyword expect in anonymous functions.
-Good:
-```js
-var foo = function() {
-  // ...
-};
-
-function foo() {
-}
-
-```
-Bad: 
-```js
-var foo = function () {
-  // ...
-};
-
-function foo ()
-{
-  // ...
-}
-```
-## comments
-
- * no inline comments
- * single space after `//`
- * Do not use multiline comment `/* */`, we are reserving these for use with jsDocs.
-
-## keywords
-
- * space immediately after if, else, while, etc
- * opening curly brace should always be on the same line.
-
-Good:
-```js
-if (true) {
- // do the thing
-}
-```
-
-Bad:
-```js
-if(true)
-{
- // do the thing
-}
-```
-
-## Else
-Avoid else and "end early". In JavaScript there is often a lot of indenting (usually when dealing with async code and named "callback hell"). Anything you can do reduce the number of indents should be done. One thing is to [avoid the else](http://blog.timoxley.com/post/47041269194/avoid-else-return-early) keyword.
-
-This also has the side effect of making code cleaner and easier to read.
-
-Bad: 
-```js
-someAsynFunc(function(err, data) {
-  if (err) {
-    callback(err);
-  } else {
-    // do stuff with data
-  }
-});
-```
-
-Good: 
-```js
-someAsynFunc(function(err, data) {
-  if (err) {
-    return callback(err);
-  }
-  // do stuff with data
-  // saves one indent
-});
-```
-
-## Long Strings
-
-Long multiline strings should be in one of two forms:
-
-```js
-var longString = 
-  ‘long strings should ‘ +
-  ‘be in this form, with the ‘ +
-  ‘operator ending the line’;
-```
-```js
-var foo = 'bar';
-
-var longString = [
-  'long strings with variables such as ',
-  foo,
-  'should ',
-  'be in this form, an array of strings ',
-  'that are joined with the join array instance method',
-].join('');
-```
-
+# Free Code Camp Style Guide
+<small>or How Cool People Write JavaScript.</small>
+
+
+## indent
+  #alwaysUseTwoSpaces
+
+  no hard tabs, ever. No really, just don't do it.
+
+## curly braces
+Always use curly braces when using the keywords `if/else/else if`. This prevents a lot of ambiguity and will prevent syntax errors in some edge cases.
+
+Bad:
+```js
+if (foo) bar();
+```
+Good:
+```js
+if (foo) { bar(); }
+#curlyBracesEverywhere!
+
+## space after `function` keyword expect in anonymous functions.
+Good:
+```js
+var foo = function() {
+  // ...
+};
+
+function foo() {
+}
+
+```
+Bad: 
+```js
+var foo = function () {
+  // ...
+};
+
+function foo ()
+{
+  // ...
+}
+```
+## comments
+
+ * no inline comments
+ * single space after `//`
+ * Do not use multiline comment `/* */`, we are reserving these for use with jsDocs.
+
+## keywords
+
+ * space immediately after if, else, while, etc
+ * opening curly brace should always be on the same line.
+
+Good:
+```js
+if (true) {
+ // do the thing
+}
+```
+
+Bad:
+```js
+if(true)
+{
+ // do the thing
+}
+```
+
+## Else
+Avoid else and "end early". In JavaScript there is often a lot of indenting (usually when dealing with async code and named "callback hell"). Anything you can do reduce the number of indents should be done. One thing is to [avoid the else](http://blog.timoxley.com/post/47041269194/avoid-else-return-early) keyword.
+
+This also has the side effect of making code cleaner and easier to read.
+
+Bad: 
+```js
+someAsynFunc(function(err, data) {
+  if (err) {
+    callback(err);
+  } else {
+    // do stuff with data
+  }
+});
+```
+
+Good: 
+```js
+someAsynFunc(function(err, data) {
+  if (err) {
+    return callback(err);
+  }
+  // do stuff with data
+  // saves one indent
+});
+```
+
+## Long Strings
+
+Long multiline strings should be in one of two forms:
+
+```js
+var longString = 
+  ‘long strings should ‘ +
+  ‘be in this form, with the ‘ +
+  ‘operator ending the line’;
+```
+```js
+var foo = 'bar';
+
+var longString = [
+  'long strings with variables such as ',
+  foo,
+  'should ',
+  'be in this form, an array of strings ',
+  'that are joined with the join array instance method',
+].join('');
+```
+
 ...more to come
\ No newline at end of file
diff --git a/Free-Code-Camp-completion-language-requirements.md b/Free-Code-Camp-completion-language-requirements.md
index bc864f7..de451dc 100644
--- a/Free-Code-Camp-completion-language-requirements.md
+++ b/Free-Code-Camp-completion-language-requirements.md
@@ -1,7 +1,7 @@
-The last 800 hours of free code camp involve building projects for nonprofits. These nonprofit projects will involve lots of meetings, correspondence, and pair programming, all of which will be conducted in English.
-
-You will need to be good enough with English to be able to participate in these meetings.
-
-We are translating our challenges into native languages so that you can focus on learning to code, rather than focusing on learning English.
-
+The last 800 hours of free code camp involve building projects for nonprofits. These nonprofit projects will involve lots of meetings, correspondence, and pair programming, all of which will be conducted in English.
+
+You will need to be good enough with English to be able to participate in these meetings.
+
+We are translating our challenges into native languages so that you can focus on learning to code, rather than focusing on learning English.
+
 Many non-native English speakers have succeeded in our nonprofit project program. With some effort, you can, too.
\ No newline at end of file
diff --git a/Free-Code-Camp-logo.md b/Free-Code-Camp-logo.md
index 9a04918..9b0e68f 100644
--- a/Free-Code-Camp-logo.md
+++ b/Free-Code-Camp-logo.md
@@ -1,9 +1,9 @@
-### Free Code Camp's logo
-
-![Free Code Camp's logo](https://i.vimeocdn.com/video/520129377_1280x720.jpg)
-
-It uses the typeface 'saxmono'.
-
-Like most of Free Code Camp's design assets, it was created by [@rybar](https://gitter.im/rybar) with help from [@iheartkode](https://gitter.im/iheartkode).
-
-You can download all of our assets, which are Creative Commons licensed, from our [Free Code Camp Assets repository](https://github.com/FreeCodeCamp/FCCAssets).
+### Free Code Camp's logo
+
+![Free Code Camp's logo](https://i.vimeocdn.com/video/520129377_1280x720.jpg)
+
+It uses the typeface 'saxmono'.
+
+Like most of Free Code Camp's design assets, it was created by [@rybar](https://gitter.im/rybar) with help from [@iheartkode](https://gitter.im/iheartkode).
+
+You can download all of our assets, which are Creative Commons licensed, from our [Free Code Camp Assets repository](https://github.com/FreeCodeCamp/FCCAssets).
diff --git a/Frontend-file-structure.md b/Frontend-file-structure.md
index a3e0317..7a475e6 100644
--- a/Frontend-file-structure.md
+++ b/Frontend-file-structure.md
@@ -1,11 +1,11 @@
-First things first: All your user-facing files and angular files are in **/client/app/**  
-
-1. **app.js**: defines your app and includes some basic app-wide functions, you probably don’t really need to mess with it unless you’re trying to add more dependencies to your app. We’re not gonna worry about that right now.  
-2. **app.css**: an app-wide stylesheet, you can put styles here if you want but I’d recommend you put them in **main/main.css**, as these styles are also app-wide.  
-3. **main/**: this folder contains what the user sees first when they load up your site. **main.html** is the page template, **main.js** routes the user to **main.html** when the user goes to the top level directory of your website—that is, <a href="#">http://yourapp.wherever.itis/</a> with no <a href="#">/other/url/hierarchy</a>. You’ll also learn soon that you can define your app’s <a href="#">/url/heirarchy/fairly/arbitrarily</a>. You won’t really need to edit **main.js** or **main.controller.spec.js**, so let's not worry about those right now. If you look through the **main.html** file you’ll see it uses *ng-repeat* to show *things* in *awesomeThings*. Where does it get *awesomeThings*?  
-4. **main/main.controller.js**: all of the javascript functions you want to use to interact directly with the user go here! You’ll put functions here to interact with your API, refresh views for your user, etc. Here, *awesomeThings* are pulled from your database and added to the local scope so your HTML view can display them! How cool! We’ll get to adding custom objects to your database in a minute.
-
-Great! Now you know how to interact with the user! But what if you want your app to have another page that does something else? Maybe **main.html** shows the home page, but you want a page that shows a form to add a poll? maybe <a href="#">http://yourapp.wherever.itis/newpage</a>? This is where the yeoman generator comes in handy.
-
-[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Guide-to-Basejumps-Table-of-Contents/)
+First things first: All your user-facing files and angular files are in **/client/app/**  
+
+1. **app.js**: defines your app and includes some basic app-wide functions, you probably don’t really need to mess with it unless you’re trying to add more dependencies to your app. We’re not gonna worry about that right now.  
+2. **app.css**: an app-wide stylesheet, you can put styles here if you want but I’d recommend you put them in **main/main.css**, as these styles are also app-wide.  
+3. **main/**: this folder contains what the user sees first when they load up your site. **main.html** is the page template, **main.js** routes the user to **main.html** when the user goes to the top level directory of your website—that is, <a href="#">http://yourapp.wherever.itis/</a> with no <a href="#">/other/url/hierarchy</a>. You’ll also learn soon that you can define your app’s <a href="#">/url/heirarchy/fairly/arbitrarily</a>. You won’t really need to edit **main.js** or **main.controller.spec.js**, so let's not worry about those right now. If you look through the **main.html** file you’ll see it uses *ng-repeat* to show *things* in *awesomeThings*. Where does it get *awesomeThings*?  
+4. **main/main.controller.js**: all of the javascript functions you want to use to interact directly with the user go here! You’ll put functions here to interact with your API, refresh views for your user, etc. Here, *awesomeThings* are pulled from your database and added to the local scope so your HTML view can display them! How cool! We’ll get to adding custom objects to your database in a minute.
+
+Great! Now you know how to interact with the user! But what if you want your app to have another page that does something else? Maybe **main.html** shows the home page, but you want a page that shows a form to add a poll? maybe <a href="#">http://yourapp.wherever.itis/newpage</a>? This is where the yeoman generator comes in handy.
+
+[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Guide-to-Basejumps-Table-of-Contents/)
 [NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-route)
\ No newline at end of file
diff --git a/Functional-Programming---Higher-Order-Functions.md b/Functional-Programming---Higher-Order-Functions.md
index dcc7774..2ea31ba 100644
--- a/Functional-Programming---Higher-Order-Functions.md
+++ b/Functional-Programming---Higher-Order-Functions.md
@@ -1,9 +1,9 @@
-### Links to help with functional programming!
-
-####Workshops
-(https://github.com/timoxley/functional-javascript-workshop)
-
-A node package workshop. More can be found at [nodeschool](http://nodeschool.io/)
-
-####Reading and videos
+### Links to help with functional programming!
+
+####Workshops
+(https://github.com/timoxley/functional-javascript-workshop)
+
+A node package workshop. More can be found at [nodeschool](http://nodeschool.io/)
+
+####Reading and videos
 (https://github.com/timoxley/functional-javascript-workshop)
\ No newline at end of file
diff --git a/Get-info-about-the-current-user.md b/Get-info-about-the-current-user.md
index 98ed297..29db805 100644
--- a/Get-info-about-the-current-user.md
+++ b/Get-info-about-the-current-user.md
@@ -1,15 +1,15 @@
-You may have noticed if you opened up **/client/app/admin/admin.controller.js** that it calls the *Auth* module like so:
-
-~~~javascript
-.controller('AdminCtrl', function ($scope, $http, Auth …
-~~~
-You can include Auth in your other controllers the same way. It’s pretty useful to have *Auth* available in your controller to detect if a user is logged in, or to get information about the current user. In the body of your controller you can add 
-
-~~~javascript
-$scope.getCurrentUser = Auth.getCurrentUser;
-$scope.isLoggedIn = Auth.isLoggedIn;
-~~~
-And then you can use *isLoggedIn()* or *getCurrentUser()* in the HTML view for your controller!  
-
-[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/More-useful-APIs)
+You may have noticed if you opened up **/client/app/admin/admin.controller.js** that it calls the *Auth* module like so:
+
+~~~javascript
+.controller('AdminCtrl', function ($scope, $http, Auth …
+~~~
+You can include Auth in your other controllers the same way. It’s pretty useful to have *Auth* available in your controller to detect if a user is logged in, or to get information about the current user. In the body of your controller you can add 
+
+~~~javascript
+$scope.getCurrentUser = Auth.getCurrentUser;
+$scope.isLoggedIn = Auth.isLoggedIn;
+~~~
+And then you can use *isLoggedIn()* or *getCurrentUser()* in the HTML view for your controller!  
+
+[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/More-useful-APIs)
 [NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Restrict-a-page-to-authenticated-users)
\ No newline at end of file
diff --git a/Getting-a-coding-job.md b/Getting-a-coding-job.md
index d0c3222..e40af05 100644
--- a/Getting-a-coding-job.md
+++ b/Getting-a-coding-job.md
@@ -1,14 +1,14 @@
-Free Code Camp will help you prepare for a coding job.
-
-![](https://www.evernote.com/shard/s116/sh/55c128c7-5d99-41cc-b03d-b3de22611c8d/b43e467b3889f646fec34bb4c161e2a2/deep/0/What's-wrong-with-this-picture----Code.org.png)
-
-Here are the facts:
-
-- There are hundreds of thousands of unfilled coding jobs.
-- Employers and the US government have joined together to promote nontraditional coding programs like Free Code Camp.
-- Full stack JavaScript is one of best paying skill sets, and has a ton of job openings.
-- The best proof that you're an employable developer is a portfolio filled with real apps that real people are using.
-
-You'll still need to develop basic interviewing skills and soft skills (if you've been working a knowledge-worker type job for a few years, you probably already have these).
-
+Free Code Camp will help you prepare for a coding job.
+
+![](https://www.evernote.com/shard/s116/sh/55c128c7-5d99-41cc-b03d-b3de22611c8d/b43e467b3889f646fec34bb4c161e2a2/deep/0/What's-wrong-with-this-picture----Code.org.png)
+
+Here are the facts:
+
+- There are hundreds of thousands of unfilled coding jobs.
+- Employers and the US government have joined together to promote nontraditional coding programs like Free Code Camp.
+- Full stack JavaScript is one of best paying skill sets, and has a ton of job openings.
+- The best proof that you're an employable developer is a portfolio filled with real apps that real people are using.
+
+You'll still need to develop basic interviewing skills and soft skills (if you've been working a knowledge-worker type job for a few years, you probably already have these).
+
 You'll also need to work hard to network with coders in your city. You can do this by joining [your city's Campsite](https://github.com/FreeCodeCamp/freecodecamp/wiki/List-of-Free-Code-Camp-city-based-Campsites) and participating in as many events as possible.
\ No newline at end of file
diff --git a/Git-Blame.md b/Git-Blame.md
index 97f63d5..36d117b 100644
--- a/Git-Blame.md
+++ b/Git-Blame.md
@@ -1,9 +1,9 @@
-> Shows what revision and author last modified each line of a file and blame them.
-
-:point_right: :no_good: — :see_no_evil: :hear_no_evil: :speak_no_evil: 
-
-![](http://i.imgur.com/Ywpucz6.png)
-
-**Reference:** https://git-scm.com/docs/git-blame
-
+> Shows what revision and author last modified each line of a file and blame them.
+
+:point_right: :no_good: — :see_no_evil: :hear_no_evil: :speak_no_evil: 
+
+![](http://i.imgur.com/Ywpucz6.png)
+
+**Reference:** https://git-scm.com/docs/git-blame
+
 ## [](http://i.imgur.com/xancoby.png)
\ No newline at end of file
diff --git a/Git-Resources.md b/Git-Resources.md
index db3f5c9..7763c01 100644
--- a/Git-Resources.md
+++ b/Git-Resources.md
@@ -1,9 +1,9 @@
-> Resources for working with Git VCS
-
-# Books and Tutorials
-- [Pro Git](https://git-scm.com/book)
-- [Become a git guru - Atlassian](https://www.atlassian.com/git/tutorials/)
-
-# Other Resources
-- [Git Ready](http://gitready.com)
+> Resources for working with Git VCS
+
+# Books and Tutorials
+- [Pro Git](https://git-scm.com/book)
+- [Become a git guru - Atlassian](https://www.atlassian.com/git/tutorials/)
+
+# Other Resources
+- [Git Ready](http://gitready.com)
 - [Hub](https://hub.github.com/)
\ No newline at end of file
diff --git a/Gitter.md b/Gitter.md
index 1a00a44..74a6551 100644
--- a/Gitter.md
+++ b/Gitter.md
@@ -1,9 +1,9 @@
-### Gitter is a chat room system popular with open source projects.
-
-![A screenshot from Gitter](https://www.evernote.com/l/AntJzLbImEFNbaLfG7YQnWWBbqLliTKTYeoB/image.png)
-
-[Gitter.im](https://gitter.im) is a rapidly growing startup based in London.
-
-Free Code Camp has hundreds of Gitter rooms. These are accessible through Gitter's website, as well as [desktop and mobile apps](https://gitter.im/apps).
-
+### Gitter is a chat room system popular with open source projects.
+
+![A screenshot from Gitter](https://www.evernote.com/l/AntJzLbImEFNbaLfG7YQnWWBbqLliTKTYeoB/image.png)
+
+[Gitter.im](https://gitter.im) is a rapidly growing startup based in London.
+
+Free Code Camp has hundreds of Gitter rooms. These are accessible through Gitter's website, as well as [desktop and mobile apps](https://gitter.im/apps).
+
 Gitter allows you to share [formatted code](https://github.com/FreeCodeCamp/freecodecamp/wiki/Pasting-Code-in-Gitter) with fellow campers.
\ No newline at end of file
diff --git a/Grunt.md b/Grunt.md
index a344322..85ed275 100644
--- a/Grunt.md
+++ b/Grunt.md
@@ -1,4 +1,4 @@
-Whenever you create a new route or directive, you have to use `control+c` in your *grunt* terminal window to quit the grunt process and re-run `grunt serve` for your new route/directive to be included in your project's **index.html**. Sometimes *grunt* can be a little finnicky and refuses to run if it thinks something is wrong with your project. Obviously you should try to fix the problem, but grunt's errors aren't very helpful so don't worry too much—grunt usually will still run totally fine with the command `grunt serve --force`.
-
-[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-directive)
+Whenever you create a new route or directive, you have to use `control+c` in your *grunt* terminal window to quit the grunt process and re-run `grunt serve` for your new route/directive to be included in your project's **index.html**. Sometimes *grunt* can be a little finnicky and refuses to run if it thinks something is wrong with your project. Obviously you should try to fix the problem, but grunt's errors aren't very helpful so don't worry too much—grunt usually will still run totally fine with the command `grunt serve --force`.
+
+[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-directive)
 [NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Backend-file-structure)
\ No newline at end of file
diff --git a/Guide-to-Basejumps-Table-of-Contents.md b/Guide-to-Basejumps-Table-of-Contents.md
index 024ca56..794a853 100644
--- a/Guide-to-Basejumps-Table-of-Contents.md
+++ b/Guide-to-Basejumps-Table-of-Contents.md
@@ -1,31 +1,31 @@
-###Table of contents
-* Part 1: Frontend
-    - [Frontend file structure](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Frontend-file-structure)
-    - [Creating a new route](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-route)
-    - [Creating a new directive](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-directive)
-    - [Grunt](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Grunt)
-* Part 2: Backend
-    - [Backend file structure](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Backend-file-structure)
-    - [Creating a new API endpoint](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-API-endpoint)
-    - [Fixing exports.update](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Fixing-exports.update)
-* Part 3: Interfacing Between Frontend & Backend
-    - [Accessing the database from your frontend](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Accessing-the-database-from-your-frontend)
-    - [Seed Data](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Seed-data)
-    - [Quick tip: keep data in sync](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Quick-tip:-keep-data-in-sync)
-* Part 4: Dynamic URLs using $routeParams, more useful APIs
-    - [Dynamic URLS using $routeParams](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Dynamic-URLs-using-$routeParams)
-    - [More Useful APIs](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/More-useful-APIs)
-* Part 5: Auth, isLoggedInAsync()
-    - [Get info about the current user](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Get-info-about-the-current-user)
-    - [Restrict a page to authenticated users](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Restrict-a-page-to-authenticated-users)
-    - [isLoggedInAsync()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/isLoggedInAsync())
-* [Bonus: SocketIO](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonus:-SocketIO)
-* [Epilogue](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Epilogue)
-
-###Legend
-**/bolded/names/with.extensions** are directories and files in the project file structure  
-<a href="#">highlighted.items/are/hypothetical</a> URLs that allow access to different pages in your app  
-*italicizedItems* are function and object names within your code
-
-[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Intro-to-Yeoman-Angular-Fullstack-Basejumps)
+###Table of contents
+* Part 1: Frontend
+    - [Frontend file structure](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Frontend-file-structure)
+    - [Creating a new route](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-route)
+    - [Creating a new directive](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-directive)
+    - [Grunt](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Grunt)
+* Part 2: Backend
+    - [Backend file structure](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Backend-file-structure)
+    - [Creating a new API endpoint](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-API-endpoint)
+    - [Fixing exports.update](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Fixing-exports.update)
+* Part 3: Interfacing Between Frontend & Backend
+    - [Accessing the database from your frontend](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Accessing-the-database-from-your-frontend)
+    - [Seed Data](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Seed-data)
+    - [Quick tip: keep data in sync](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Quick-tip:-keep-data-in-sync)
+* Part 4: Dynamic URLs using $routeParams, more useful APIs
+    - [Dynamic URLS using $routeParams](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Dynamic-URLs-using-$routeParams)
+    - [More Useful APIs](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/More-useful-APIs)
+* Part 5: Auth, isLoggedInAsync()
+    - [Get info about the current user](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Get-info-about-the-current-user)
+    - [Restrict a page to authenticated users](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Restrict-a-page-to-authenticated-users)
+    - [isLoggedInAsync()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/isLoggedInAsync())
+* [Bonus: SocketIO](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonus:-SocketIO)
+* [Epilogue](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Epilogue)
+
+###Legend
+**/bolded/names/with.extensions** are directories and files in the project file structure  
+<a href="#">highlighted.items/are/hypothetical</a> URLs that allow access to different pages in your app  
+*italicizedItems* are function and object names within your code
+
+[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Intro-to-Yeoman-Angular-Fullstack-Basejumps)
 [NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Frontend-file-structure)
\ No newline at end of file
diff --git a/Guide-to-Submitting-Posts-to-Free-Code-Camp-Medium-Publication.md b/Guide-to-Submitting-Posts-to-Free-Code-Camp-Medium-Publication.md
index dffc66f..de3142f 100644
--- a/Guide-to-Submitting-Posts-to-Free-Code-Camp-Medium-Publication.md
+++ b/Guide-to-Submitting-Posts-to-Free-Code-Camp-Medium-Publication.md
@@ -1,34 +1,34 @@
-Thousands of people read our [Medium publication](https://medium.freecodecamp.com). Here's how to submit posts, and what we look for in posts that we ultimately publish.
-
-1. Create a Medium account
-1. Add a headshot and bio
-1. Email team@freecodecamp.com to request to become a writer for our publication
-1. Start submitting posts to us for us to review and potentially publish
-
-##Content tips:
-
-- Read through articles that have already been published on our publication and write about things we haven't covered yet.
-- Autobiographical posts need a unique perspective or a non-obvious takeaway. 
-- Technical articles are welcome, and should be written so that most people who have only been coding for a year can still understand them
-- Humorous posts do quite well with our community, and even serious articles can be lightened up with humor
-- [7 minutes is technically the optimal post length](https://medium.com/data-lab/the-optimal-post-is-7-minutes-74b9f41509b#.jxmxzdrfa), but don't dilute your content to reach that length
-- Keep your tone positive, and keep any criticism you may have metered and objective
-- Good writing takes time. A 7-minute medium post takes me (Quincy Larson) around 4 - 6 hours
-
-
-##Style tips:
-
-- Feature a large, exciting image at the top of the page
-- Break up text with good, relevant images throughout
-- Break points down and use headlines and sub headlines where necessary
-- Avoid the "wall of text" affect by keeping paragraphs between 1 - 4 sentences
-- Use exclamation points and ellipsis sparingly
-- Avoid profanity and any statements that Lisa (the character from The Simpsons) would find offensive
-- Avoid using more than one conjunction in a sentence
-- Re-read your post to make sure there aren't any obvious typos
-
-##Our goal is to publish as many camper submissions as possible while maintaining a baseline level of quality.
-
-We get a lot of submissions. Please don't take offense if we don't publish your submission immediately. Instead, [message @QuincyLarson in Gitter](https://gitter.im/quincylarson) and I can give you the status of your submission and quick feedback.
-
+Thousands of people read our [Medium publication](https://medium.freecodecamp.com). Here's how to submit posts, and what we look for in posts that we ultimately publish.
+
+1. Create a Medium account
+1. Add a headshot and bio
+1. Email team@freecodecamp.com to request to become a writer for our publication
+1. Start submitting posts to us for us to review and potentially publish
+
+##Content tips:
+
+- Read through articles that have already been published on our publication and write about things we haven't covered yet.
+- Autobiographical posts need a unique perspective or a non-obvious takeaway. 
+- Technical articles are welcome, and should be written so that most people who have only been coding for a year can still understand them
+- Humorous posts do quite well with our community, and even serious articles can be lightened up with humor
+- [7 minutes is technically the optimal post length](https://medium.com/data-lab/the-optimal-post-is-7-minutes-74b9f41509b#.jxmxzdrfa), but don't dilute your content to reach that length
+- Keep your tone positive, and keep any criticism you may have metered and objective
+- Good writing takes time. A 7-minute medium post takes me (Quincy Larson) around 4 - 6 hours
+
+
+##Style tips:
+
+- Feature a large, exciting image at the top of the page
+- Break up text with good, relevant images throughout
+- Break points down and use headlines and sub headlines where necessary
+- Avoid the "wall of text" affect by keeping paragraphs between 1 - 4 sentences
+- Use exclamation points and ellipsis sparingly
+- Avoid profanity and any statements that Lisa (the character from The Simpsons) would find offensive
+- Avoid using more than one conjunction in a sentence
+- Re-read your post to make sure there aren't any obvious typos
+
+##Our goal is to publish as many camper submissions as possible while maintaining a baseline level of quality.
+
+We get a lot of submissions. Please don't take offense if we don't publish your submission immediately. Instead, [message @QuincyLarson in Gitter](https://gitter.im/quincylarson) and I can give you the status of your submission and quick feedback.
+
 Happy writing and coding!
\ No newline at end of file
diff --git a/Help-I've-Found-a-Bug.md b/Help-I've-Found-a-Bug.md
index a1e1973..2ad1a0d 100644
--- a/Help-I've-Found-a-Bug.md
+++ b/Help-I've-Found-a-Bug.md
@@ -1,12 +1,12 @@
-Thank you for taking the effort to report an issue with FreeCodeCamp.
-
-If you think you've found a bug on FreeCodeCamp, please follow these steps to resolve your problem:
-
-1. If the page seems broken in any way, try to do a [Hard Refresh](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Refresh-Your-Browser-Cache) of the page.  This will update any old code that may have been cached in your browser.  
- * If your code crashes your browser, also try [Clearing Your Browser's Local Storage](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Clear-Your-Browser's-Local-Storage).
-
-2. [Ask for Help on Gitter](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-to-Get-Help-on-Gitter).  You can usually get a quick response from a helpful community member there.
-
-3. If your problem has baffled everyone in Gitter, try [Searching for Your Issue on GitHub](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Searching-for-Your-Issue-on-Github) for anyone who has posted about a similar issue. If someone has, you can upvote the issue by replying to it with "+1" as your message.
-
+Thank you for taking the effort to report an issue with FreeCodeCamp.
+
+If you think you've found a bug on FreeCodeCamp, please follow these steps to resolve your problem:
+
+1. If the page seems broken in any way, try to do a [Hard Refresh](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Refresh-Your-Browser-Cache) of the page.  This will update any old code that may have been cached in your browser.  
+ * If your code crashes your browser, also try [Clearing Your Browser's Local Storage](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Clear-Your-Browser's-Local-Storage).
+
+2. [Ask for Help on Gitter](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-to-Get-Help-on-Gitter).  You can usually get a quick response from a helpful community member there.
+
+3. If your problem has baffled everyone in Gitter, try [Searching for Your Issue on GitHub](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Searching-for-Your-Issue-on-Github) for anyone who has posted about a similar issue. If someone has, you can upvote the issue by replying to it with "+1" as your message.
+
 3. If you can't find any relevant issues on GitHub, then [Create a New Issue](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-New-Github-Issue) and our development team will take a look at your problem.
\ No newline at end of file
diff --git a/Help-Rooms.md b/Help-Rooms.md
index ba3c6d2..cd7b9cf 100644
--- a/Help-Rooms.md
+++ b/Help-Rooms.md
@@ -1,13 +1,13 @@
-There are official help rooms for each major section of FCC content:
-
-| Chat Room | Description |
-| --- | --- |
-| [Help](https://gitter.im/freecodecamp/Help) | get help with our Waypoint challenges from your fellow campers | 
-| [HelpBonfires](https://gitter.im/freecodecamp/HelpBonfires) | get help with our Bonfire challenges from your fellow campers | 
-| [HelpZiplines](https://gitter.im/freecodecamp/HelpZiplines) | get help with our Zipline challenges from your fellow campers | 
-| [HelpBasejumps](https://gitter.im/freecodecamp/HelpBasejumps) | get help with our Basejump challenges from your fellow campers | 
-| [NonprofitProjects](https://gitter.im/freecodecamp/NonprofitProjects) | get help with your Nonprofit Projects from your fellow campers | 
-| [CodeReview](https://gitter.im/freecodecamp/CodeReview) | get constructive criticism and advice on finished code from your fellow campers | 
-| [YouCanDoThis](https://gitter.im/freecodecamp/YouCanDoThis) | learning to code is hard - share your feelings and get moral support here | 
-
+There are official help rooms for each major section of FCC content:
+
+| Chat Room | Description |
+| --- | --- |
+| [Help](https://gitter.im/freecodecamp/Help) | get help with our Waypoint challenges from your fellow campers | 
+| [HelpBonfires](https://gitter.im/freecodecamp/HelpBonfires) | get help with our Bonfire challenges from your fellow campers | 
+| [HelpZiplines](https://gitter.im/freecodecamp/HelpZiplines) | get help with our Zipline challenges from your fellow campers | 
+| [HelpBasejumps](https://gitter.im/freecodecamp/HelpBasejumps) | get help with our Basejump challenges from your fellow campers | 
+| [NonprofitProjects](https://gitter.im/freecodecamp/NonprofitProjects) | get help with your Nonprofit Projects from your fellow campers | 
+| [CodeReview](https://gitter.im/freecodecamp/CodeReview) | get constructive criticism and advice on finished code from your fellow campers | 
+| [YouCanDoThis](https://gitter.im/freecodecamp/YouCanDoThis) | learning to code is hard - share your feelings and get moral support here | 
+
 Choose the right room for your question!
\ No newline at end of file
diff --git a/Higher-Order-functions.md b/Higher-Order-functions.md
index 2698c5f..114518b 100644
--- a/Higher-Order-functions.md
+++ b/Higher-Order-functions.md
@@ -1,4 +1,4 @@
-Functions that are higher!
-
-https://www.youtube.com/watch?v=BMUiFMZr7vk
-
+Functions that are higher!
+
+https://www.youtube.com/watch?v=BMUiFMZr7vk
+
diff --git a/Home.md b/Home.md
index 555bd4d..94de71c 100644
--- a/Home.md
+++ b/Home.md
@@ -1,16 +1,16 @@
-##Welcome to the Free Code Camp Wiki!
-
-Our open source community's Wiki focuses on answering your questions about learning to code and getting a coding job. We also cover in detail our:
-- Curriculum
-- Local Campsite Communities
-- Nonprofit Projects
-
-![An illustration of CamperBot](http://i.imgur.com/gyJwzkx.png)
-
-The best way to access this wiki is via [CamperBot](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/camperbot), located in our Gitter channels. CamperBot is a community designed tool useful for accessing our wiki content without ever leaving Gitter.
-
-To contribute a wiki article for any of the bonfires, please use this [template](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Wiki-Template). This is essential for [@CamperBot](https://github.com/camperbot) to retrieve the article. Bonfire articles that do not use this template will be removed.
-
-If you have questions about contributing to the Free Code Camp Wiki message [@Rafase282 in Gitter](https://gitter.im/Rafase282).
-
+##Welcome to the Free Code Camp Wiki!
+
+Our open source community's Wiki focuses on answering your questions about learning to code and getting a coding job. We also cover in detail our:
+- Curriculum
+- Local Campsite Communities
+- Nonprofit Projects
+
+![An illustration of CamperBot](http://i.imgur.com/gyJwzkx.png)
+
+The best way to access this wiki is via [CamperBot](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/camperbot), located in our Gitter channels. CamperBot is a community designed tool useful for accessing our wiki content without ever leaving Gitter.
+
+To contribute a wiki article for any of the bonfires, please use this [template](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Wiki-Template). This is essential for [@CamperBot](https://github.com/camperbot) to retrieve the article. Bonfire articles that do not use this template will be removed.
+
+If you have questions about contributing to the Free Code Camp Wiki message [@Rafase282 in Gitter](https://gitter.im/Rafase282).
+
 We look forward to collaborating with you on expanding and improving this wiki!
\ No newline at end of file
diff --git a/How-Free-Code-Camp-works.md b/How-Free-Code-Camp-works.md
index 5146c59..b4e1515 100644
--- a/How-Free-Code-Camp-works.md
+++ b/How-Free-Code-Camp-works.md
@@ -1,15 +1,15 @@
-Free Code Camp offers you a free, self-paced, browser-based program that takes about 1,600 hours to complete.
-
-![An image of a table showing the different segments of Free Code Camp](https://s3.amazonaws.com/freecodecamp/curriculum-diagram-waypoints.jpg)
-
-## how it works
-![An image of a table showing the different segments of Free Code Camp](https://s3.amazonaws.com/freecodecamp/curriculum-diagram-bonfires.jpg)
-
-![An image of a table showing the different segments of Free Code Camp](https://s3.amazonaws.com/freecodecamp/curriculum-diagram-ziplines.jpg)
-
-![An image of a table showing the different segments of Free Code Camp](https://s3.amazonaws.com/freecodecamp/curriculum-diagram-basejumps.jpg)
-
-![An image of a table showing the different segments of Free Code Camp](https://s3.amazonaws.com/freecodecamp/curriculum-diagram-nonprofit-projects.jpg)
-
-![An image of a table showing the different segments of Free Code Camp](https://s3.amazonaws.com/freecodecamp/curriculum-diagram-full.jpg)
-
+Free Code Camp offers you a free, self-paced, browser-based program that takes about 1,600 hours to complete.
+
+![An image of a table showing the different segments of Free Code Camp](https://s3.amazonaws.com/freecodecamp/curriculum-diagram-waypoints.jpg)
+
+## how it works
+![An image of a table showing the different segments of Free Code Camp](https://s3.amazonaws.com/freecodecamp/curriculum-diagram-bonfires.jpg)
+
+![An image of a table showing the different segments of Free Code Camp](https://s3.amazonaws.com/freecodecamp/curriculum-diagram-ziplines.jpg)
+
+![An image of a table showing the different segments of Free Code Camp](https://s3.amazonaws.com/freecodecamp/curriculum-diagram-basejumps.jpg)
+
+![An image of a table showing the different segments of Free Code Camp](https://s3.amazonaws.com/freecodecamp/curriculum-diagram-nonprofit-projects.jpg)
+
+![An image of a table showing the different segments of Free Code Camp](https://s3.amazonaws.com/freecodecamp/curriculum-diagram-full.jpg)
+
diff --git a/How-FreeCodeCamp-Nonprofit-Projects-work.md b/How-FreeCodeCamp-Nonprofit-Projects-work.md
index 46acc4f..3991695 100644
--- a/How-FreeCodeCamp-Nonprofit-Projects-work.md
+++ b/How-FreeCodeCamp-Nonprofit-Projects-work.md
@@ -1,87 +1,87 @@
-Building nonprofit projects is the main way that our campers learn full stack JavaScript and agile software development. Once you've earned both your Front End Development Certification and your Full Stack Development Certification, you'll begin this process.
-
-## Starting with the end in mind
-
-Our goal at Free Code Camp is to help you land a job as a junior software developer (or, if you prefer, a 'pivot job' that leads your current career in a more technical direction).
-
-You'll continue to work on nonprofit projects until you've built a sufficiently impressive portfolio and references to start your job search. Your portfolio will ultimately have four nonprofit projects. We estimate that the 800 hours of nonprofit projects you're going to complete, in addition to the 800 hours of challenges you've already completed, will be enough to qualify you for your first coding job. This will produce a much broader portfolio than a traditional coding bootcamp, which generally only has one or two capstone projects.
-
-## Choosing your first Nonprofit Project
-
-We've categorized all the nonprofit projects by estimated time investment per camper: 100 hours, 200 hours, and 300 hours. These are only rough estimates.
-
-Example: if you and the camper you're paired up with (your pair) each stated you could work 20 hours per week. If the project is a 100 hour per camper project, you should be able to complete it in about 5 weeks.
-Our Nonprofit Project team will match you and your pair based on:
-
-- Your estimated time commitment (10, 20 or 40 hours per week)
-- Your time zone
-- The nonprofit projects you've chosen
-- Prior coding experience (we'd like both campers to be able to contribute equally)
-
-
-We won't take age or gender into account. This will provide you with valuable experience in meshing with diverse teams, which is a reality of the contemporary workplace.
-
-You'll only work on one project at a time. Once you start a nonprofit project, we'll remove you from all other nonprofit project you've expressed interest in. There's a good chance those projects will no longer be available when you finish your current project, anyway. Don't worry, though - we get new nonprofit project requests every day, so there will be plenty more projects for you to consider after you finish your current one.
-
-### Finalizing the Project
-
-Before you can start working on the project, our team of Nonprofit Project Coordinators will go through the following process:
-
-- We'll wait until there are two campers who have chosen the same project and look like they're a good match for one another based on the factors mentioned above.
-- We'll call the stakeholder to confirm once again that he or she agrees with our [terms](http://freecodecamp.com/nonprofits) and has signed our [Nonprofit Project Stakeholder Pledge] (http://goo.gl/forms/0YKkd9bpcR).
-- We'll set an initial meeting with representatives from Free Code Camp, the two campers, and the stakeholder.
-- If the stakeholder and both campers shows up promptly, and seem enthusiastic and professional, we'll start the project.
-
-This lengthy process serves an important purpose: it reduces the likelihood that any of our campers or stakeholders will waste their precious time.
-
-### Nonprofit Stakeholders
-
-Each nonprofit project was submitted by a nonprofit. A representative from this nonprofit has agreed to serve as a "stakeholder" - an authorative person who understands the organization and its needs for this particular project.
-
-Stakeholders have a deep understanding of their organizations' needs. Campers will work with them to figure out the best solutions to these needs.
-
-When you and your pair partner first speak with your nonprofit stakeholder, you'll:
-
-- talk at length to better understand their needs.
-- create a new Trello board and use it to prioritize what needs to be built.
-- and establish deadlines based on your weekly time commitment, and how long you think each task will take.
-
-It's notoriously difficult to estimate how long building software projects will take, so feel free to ask our volunteer team for help.
-
-You'll continue to meet with your stakeholder at least twice a month in your project's Gitter channel.
-You should also ask questions in your project's Gitter channel as they come up throughout the week, and your stakeholder can answer them asynchronously.
-
-Getting "blocked" on a task can take away your sense of forward momentum, so be sure to proactively seek answers to any ambiguities you encounter.
-
-Ultimately, the project will be considered complete once both the stakeholder's needs have been met, and you and your pair are happy with the project. Then you can add it to your portfolio!
-
-### Working with your Pair
-
-You and your pair will pair program (code together on the same computer virtually) about half of the time, and work independently the other half of the time.
-
-Here are our recommended ways of collaborating:
-
-- Gitter has robust private messaging functionality. It's the main way our team communicates, and we recommend it over email.
-- Trello is great for managing projects. Work with your stakeholder to create Trello cards, and update these cards regularly as you make progress on them.
-- Screen Hero or Team Viewer - These are the ideal way to pair program. Tools like TMUX are good, but difficult to use. We discourage you from using screen sharing tools where only one person has control of the keyboard and mouse - that isn't real pair programming.
-- Write clear and readable code, commit messages, branch names, and pull request messages.
-
-### Hosting Apps
-
-Unless your stakeholder has an existing modern host (AWS, Digital Ocean), you'll need to transition them over to a new platform. We believe Heroku is the best choice for a vast majority of web projects. It's free, easy to use, and has both browser and command line interfaces. It's owned by Salesforce and used by a ton of companies, so it's accountable and unlikely to go away.
-
-If you need help convincing your stakeholder that Heroku is the ideal platform, we'll be happy to talk with them.
-
-### Maintaining Apps
-
-Once you complete a nonprofit project, your obligation to its stakeholder is finished. Your goal is to leave behind a well documented solution that can be easily maintained by a contract JavaScript developer (or even a less-technical "super user").
-
-While you will no longer need to help with feature development, we encourage you to consider helping your stakeholder with occasional patches down the road. After all, this project will be an important piece of your portfolio, and you'll want it to remain in good shape for curious future employers.
-
-### Pledging to finish the project
-
-Your nonprofit stakeholder, your pair partner, and our volunteer team are all counting on you to finish your nonprofit project. If you walk away from an unfinished nonprofit project, you'll become ineligible to ever be assigned another one.
-
-To confirm that you understand the seriousness of this commitment, we require that all campers [sign this pledge](http://goo.gl/forms/ZMn96z2QqY) before starting on their nonprofit projects.
-
+Building nonprofit projects is the main way that our campers learn full stack JavaScript and agile software development. Once you've earned both your Front End Development Certification and your Full Stack Development Certification, you'll begin this process.
+
+## Starting with the end in mind
+
+Our goal at Free Code Camp is to help you land a job as a junior software developer (or, if you prefer, a 'pivot job' that leads your current career in a more technical direction).
+
+You'll continue to work on nonprofit projects until you've built a sufficiently impressive portfolio and references to start your job search. Your portfolio will ultimately have four nonprofit projects. We estimate that the 800 hours of nonprofit projects you're going to complete, in addition to the 800 hours of challenges you've already completed, will be enough to qualify you for your first coding job. This will produce a much broader portfolio than a traditional coding bootcamp, which generally only has one or two capstone projects.
+
+## Choosing your first Nonprofit Project
+
+We've categorized all the nonprofit projects by estimated time investment per camper: 100 hours, 200 hours, and 300 hours. These are only rough estimates.
+
+Example: if you and the camper you're paired up with (your pair) each stated you could work 20 hours per week. If the project is a 100 hour per camper project, you should be able to complete it in about 5 weeks.
+Our Nonprofit Project team will match you and your pair based on:
+
+- Your estimated time commitment (10, 20 or 40 hours per week)
+- Your time zone
+- The nonprofit projects you've chosen
+- Prior coding experience (we'd like both campers to be able to contribute equally)
+
+
+We won't take age or gender into account. This will provide you with valuable experience in meshing with diverse teams, which is a reality of the contemporary workplace.
+
+You'll only work on one project at a time. Once you start a nonprofit project, we'll remove you from all other nonprofit project you've expressed interest in. There's a good chance those projects will no longer be available when you finish your current project, anyway. Don't worry, though - we get new nonprofit project requests every day, so there will be plenty more projects for you to consider after you finish your current one.
+
+### Finalizing the Project
+
+Before you can start working on the project, our team of Nonprofit Project Coordinators will go through the following process:
+
+- We'll wait until there are two campers who have chosen the same project and look like they're a good match for one another based on the factors mentioned above.
+- We'll call the stakeholder to confirm once again that he or she agrees with our [terms](http://freecodecamp.com/nonprofits) and has signed our [Nonprofit Project Stakeholder Pledge] (http://goo.gl/forms/0YKkd9bpcR).
+- We'll set an initial meeting with representatives from Free Code Camp, the two campers, and the stakeholder.
+- If the stakeholder and both campers shows up promptly, and seem enthusiastic and professional, we'll start the project.
+
+This lengthy process serves an important purpose: it reduces the likelihood that any of our campers or stakeholders will waste their precious time.
+
+### Nonprofit Stakeholders
+
+Each nonprofit project was submitted by a nonprofit. A representative from this nonprofit has agreed to serve as a "stakeholder" - an authorative person who understands the organization and its needs for this particular project.
+
+Stakeholders have a deep understanding of their organizations' needs. Campers will work with them to figure out the best solutions to these needs.
+
+When you and your pair partner first speak with your nonprofit stakeholder, you'll:
+
+- talk at length to better understand their needs.
+- create a new Trello board and use it to prioritize what needs to be built.
+- and establish deadlines based on your weekly time commitment, and how long you think each task will take.
+
+It's notoriously difficult to estimate how long building software projects will take, so feel free to ask our volunteer team for help.
+
+You'll continue to meet with your stakeholder at least twice a month in your project's Gitter channel.
+You should also ask questions in your project's Gitter channel as they come up throughout the week, and your stakeholder can answer them asynchronously.
+
+Getting "blocked" on a task can take away your sense of forward momentum, so be sure to proactively seek answers to any ambiguities you encounter.
+
+Ultimately, the project will be considered complete once both the stakeholder's needs have been met, and you and your pair are happy with the project. Then you can add it to your portfolio!
+
+### Working with your Pair
+
+You and your pair will pair program (code together on the same computer virtually) about half of the time, and work independently the other half of the time.
+
+Here are our recommended ways of collaborating:
+
+- Gitter has robust private messaging functionality. It's the main way our team communicates, and we recommend it over email.
+- Trello is great for managing projects. Work with your stakeholder to create Trello cards, and update these cards regularly as you make progress on them.
+- Screen Hero or Team Viewer - These are the ideal way to pair program. Tools like TMUX are good, but difficult to use. We discourage you from using screen sharing tools where only one person has control of the keyboard and mouse - that isn't real pair programming.
+- Write clear and readable code, commit messages, branch names, and pull request messages.
+
+### Hosting Apps
+
+Unless your stakeholder has an existing modern host (AWS, Digital Ocean), you'll need to transition them over to a new platform. We believe Heroku is the best choice for a vast majority of web projects. It's free, easy to use, and has both browser and command line interfaces. It's owned by Salesforce and used by a ton of companies, so it's accountable and unlikely to go away.
+
+If you need help convincing your stakeholder that Heroku is the ideal platform, we'll be happy to talk with them.
+
+### Maintaining Apps
+
+Once you complete a nonprofit project, your obligation to its stakeholder is finished. Your goal is to leave behind a well documented solution that can be easily maintained by a contract JavaScript developer (or even a less-technical "super user").
+
+While you will no longer need to help with feature development, we encourage you to consider helping your stakeholder with occasional patches down the road. After all, this project will be an important piece of your portfolio, and you'll want it to remain in good shape for curious future employers.
+
+### Pledging to finish the project
+
+Your nonprofit stakeholder, your pair partner, and our volunteer team are all counting on you to finish your nonprofit project. If you walk away from an unfinished nonprofit project, you'll become ineligible to ever be assigned another one.
+
+To confirm that you understand the seriousness of this commitment, we require that all campers [sign this pledge](http://goo.gl/forms/ZMn96z2QqY) before starting on their nonprofit projects.
+
 There will likely be times of confusion or frustration. This is normal in software development. The most important thing is that you do not give up and instead persevere through these setbacks. As Steve Jobs famously said, "Real artists ship." And you are going to ship one successful nonprofit project after another until you feel ready to take the next step in your promising career.
\ No newline at end of file
diff --git a/How-GitHub-Issue-Moderators-AKA-Issue-Mods-Work.md b/How-GitHub-Issue-Moderators-AKA-Issue-Mods-Work.md
index 88d2d5d..e5da81f 100644
--- a/How-GitHub-Issue-Moderators-AKA-Issue-Mods-Work.md
+++ b/How-GitHub-Issue-Moderators-AKA-Issue-Mods-Work.md
@@ -1,16 +1,16 @@
-GitHub Issue Moderators, or "issue mods", are volunteers who have the ability to close issues and accept or deny pull requests.
-
-In order to become an issue mod, you must first prove your helpfulness by leaving useful comments on outstanding issues, and submitting pull requests of your own to fix these issues.
-
-If you've been doing these things, and want the additional power/responsibility that comes with helping Free Code Camp as an issue mod, please contact [@berkeleytrue](https://gitter.im/berkeleytrue) in Gitter.
-
-If you are approved, we will add you to a GitHub Team, `Issue mods`.
-
-Though you will have write access to Free Code Camp's repository, **you should never write directly to the Free Code Camp repository**. All code should enter Free Code Camp's codebase in the form of a pull request.
-
-Please note that we will frequently remove issue mods whom we think are inactive. If you are removed, please do not take this personally - we can add you back to the team, just message us and let us know you're still active.
-
-Also note, the number of issue moderators will always remain small due to the nature of Github permissions.
-
-Happy Coding!
-
+GitHub Issue Moderators, or "issue mods", are volunteers who have the ability to close issues and accept or deny pull requests.
+
+In order to become an issue mod, you must first prove your helpfulness by leaving useful comments on outstanding issues, and submitting pull requests of your own to fix these issues.
+
+If you've been doing these things, and want the additional power/responsibility that comes with helping Free Code Camp as an issue mod, please contact [@berkeleytrue](https://gitter.im/berkeleytrue) in Gitter.
+
+If you are approved, we will add you to a GitHub Team, `Issue mods`.
+
+Though you will have write access to Free Code Camp's repository, **you should never write directly to the Free Code Camp repository**. All code should enter Free Code Camp's codebase in the form of a pull request.
+
+Please note that we will frequently remove issue mods whom we think are inactive. If you are removed, please do not take this personally - we can add you back to the team, just message us and let us know you're still active.
+
+Also note, the number of issue moderators will always remain small due to the nature of Github permissions.
+
+Happy Coding!
+
diff --git a/How-JSONP-is-different-from-JSON.md b/How-JSONP-is-different-from-JSON.md
index 8b07002..9b3f981 100644
--- a/How-JSONP-is-different-from-JSON.md
+++ b/How-JSONP-is-different-from-JSON.md
@@ -1,19 +1,19 @@
-## JSONP is just JSON wrapped in a callback function.
-
-JSONP is useful for making cross domain requests, which are often otherwise forbidden by browsers for security reasons.
-
-```
- // an example of JSON
- {"weapon":"nunchucks","headband":"yellow"}
-
- // an example of JSONP
- myCallback({"weapon":"nunchucks","headband":"yellow"});
-```
-
-Then to access the data stored in your JSONP, you define the callback function:
-
-```
-myCallback = function(data){
-  alert(data.weapon);
-};
+## JSONP is just JSON wrapped in a callback function.
+
+JSONP is useful for making cross domain requests, which are often otherwise forbidden by browsers for security reasons.
+
+```
+ // an example of JSON
+ {"weapon":"nunchucks","headband":"yellow"}
+
+ // an example of JSONP
+ myCallback({"weapon":"nunchucks","headband":"yellow"});
+```
+
+Then to access the data stored in your JSONP, you define the callback function:
+
+```
+myCallback = function(data){
+  alert(data.weapon);
+};
 ```
\ No newline at end of file
diff --git a/How-Long-Free-Code-Camp-Takes.md b/How-Long-Free-Code-Camp-Takes.md
index 41bd419..0d4c3e5 100644
--- a/How-Long-Free-Code-Camp-Takes.md
+++ b/How-Long-Free-Code-Camp-Takes.md
@@ -1,10 +1,10 @@
-It takes about 1,600 hours to complete Free Code Camp.
-
-Free Code Camp is fully online, and there will always be other people at your skill level that you can pair program with, so you can learn at your own pace. Here are some example coding schedules:
-
-Time budgeted | Hours per week | Weeks to complete
---- | --- | ---
-Weekends | 10 hours/week | 160 weeks (36 months)
-Nights and Weekends | 20 hours/week | 80 weeks (18 months)
-Full time | 40 hours/week | 40 weeks (9 months)
+It takes about 1,600 hours to complete Free Code Camp.
+
+Free Code Camp is fully online, and there will always be other people at your skill level that you can pair program with, so you can learn at your own pace. Here are some example coding schedules:
+
+Time budgeted | Hours per week | Weeks to complete
+--- | --- | ---
+Weekends | 10 hours/week | 160 weeks (36 months)
+Nights and Weekends | 20 hours/week | 80 weeks (18 months)
+Full time | 40 hours/week | 40 weeks (9 months)
 Traditional Bootcamp Pacing | 80 hours/week | 20 weeks (5 months)
\ No newline at end of file
diff --git a/How-to-Get-Help-on-Gitter.md b/How-to-Get-Help-on-Gitter.md
index 9b81dec..905fc87 100644
--- a/How-to-Get-Help-on-Gitter.md
+++ b/How-to-Get-Help-on-Gitter.md
@@ -1,9 +1,9 @@
-Sorry that you are stuck. Luckily there are many campers who hang out on Gitter and can help you resolve most issues! Follow these simple steps to get help fast:
-
-1. Go to the [Help Room](https://gitter.im/FreeCodeCamp/Help)
- *  If the problem is code related, paste the problematic code in the chat room with the [Proper Formatting](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/code-formatting) and a description of the issue.
- * If the problem seems to be with the site itself, post a screenshot of the issue or describe it well.
-
-2. Remember that the people there are campers just like you, so be courteous!
-
+Sorry that you are stuck. Luckily there are many campers who hang out on Gitter and can help you resolve most issues! Follow these simple steps to get help fast:
+
+1. Go to the [Help Room](https://gitter.im/FreeCodeCamp/Help)
+ *  If the problem is code related, paste the problematic code in the chat room with the [Proper Formatting](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/code-formatting) and a description of the issue.
+ * If the problem seems to be with the site itself, post a screenshot of the issue or describe it well.
+
+2. Remember that the people there are campers just like you, so be courteous!
+
 3. If your problem has baffled everyone in Gitter, try [Searching for Your Issue on Github](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Searching-for-Your-Issue-on-Github) for anyone who has posted about a similar issue.  
\ No newline at end of file
diff --git a/How-to-add-Free-Code-Camp-to-my-LinkedIn-profile.md b/How-to-add-Free-Code-Camp-to-my-LinkedIn-profile.md
index b9a545e..b06e7d9 100644
--- a/How-to-add-Free-Code-Camp-to-my-LinkedIn-profile.md
+++ b/How-to-add-Free-Code-Camp-to-my-LinkedIn-profile.md
@@ -1,10 +1,10 @@
-LinkedIn recognizes Free Code Camp as a university.
-
-You can explore our alumni activity [here](https://www.linkedin.com/edu/school?id=166029).
-
-You should add Free Code Camp to your LinkedIn profile. Here's how:
-
-- Follow this link: [https://www.linkedin.com/profile/edit-education?school=Free+Code+Camp](https://www.linkedin.com/profile/edit-education?school=Free+Code+Camp)
-- Follow these instructions:![](https://www.evernote.com/l/AHRnpH-PN-JPQa9_u8FSOzejNG-tX40h1fkB/image.png)
-
+LinkedIn recognizes Free Code Camp as a university.
+
+You can explore our alumni activity [here](https://www.linkedin.com/edu/school?id=166029).
+
+You should add Free Code Camp to your LinkedIn profile. Here's how:
+
+- Follow this link: [https://www.linkedin.com/profile/edit-education?school=Free+Code+Camp](https://www.linkedin.com/profile/edit-education?school=Free+Code+Camp)
+- Follow these instructions:![](https://www.evernote.com/l/AHRnpH-PN-JPQa9_u8FSOzejNG-tX40h1fkB/image.png)
+
 Once you complete our curriculum (or complete at least one Nonprofit Project and then get a coding job), we will issue you an official Full Stack Web Development certificate that you can also add to your LinkedIn profile.
\ No newline at end of file
diff --git a/How-to-best-use-the-Global-Control-Shortcuts-for-Mac.md b/How-to-best-use-the-Global-Control-Shortcuts-for-Mac.md
index e25fd05..1a3b8d8 100644
--- a/How-to-best-use-the-Global-Control-Shortcuts-for-Mac.md
+++ b/How-to-best-use-the-Global-Control-Shortcuts-for-Mac.md
@@ -1,15 +1,15 @@
-These Global Control Shortcuts for Mac will save you hours by speeding up your typing.
-
-https://player.vimeo.com/video/107073108
-
-These global shortcuts work everywhere on a Mac:
-
-- Control + F = Forward
-- Control + B = Backward
-- Control + N = Next Line
-- Control + P = Previous Line
-- Control + H = Backspace
-- Control + D = Delete
-- Control + A = Beginning of Line
-- Control + E = End of Line
+These Global Control Shortcuts for Mac will save you hours by speeding up your typing.
+
+https://player.vimeo.com/video/107073108
+
+These global shortcuts work everywhere on a Mac:
+
+- Control + F = Forward
+- Control + B = Backward
+- Control + N = Next Line
+- Control + P = Previous Line
+- Control + H = Backspace
+- Control + D = Delete
+- Control + A = Beginning of Line
+- Control + E = End of Line
 - Control + K = Kill line
\ No newline at end of file
diff --git a/How-to-clear-specific-values-from-your-browser's-local-storage.md b/How-to-clear-specific-values-from-your-browser's-local-storage.md
index 0ec556a..741724c 100644
--- a/How-to-clear-specific-values-from-your-browser's-local-storage.md
+++ b/How-to-clear-specific-values-from-your-browser's-local-storage.md
@@ -1,30 +1,30 @@
-Removing specific values from your browser's local storage will solve many problems related to the browser crashing or freezing on FreeCodeCamp.
-
-This solves, as example, a common problem with browser hanging out in a challenge's page after saving a response with an infinite loop.
-
-When this happens, you must delete the value in `localStorage` storing that response.
-
-In Chrome:
-* On **freecodecamp.com**, open your developer tools.
-  * More tools > Developer tools (or `Ctrl` + `Shift` + `I` (Windows), `Cmd` + `Opt` + `I` (Mac))
-* Navigate to the `Resources` tab
-* Expand the `Local Storage` item in the left pane
-* Select `http://www.freecodecamp.com`
-* Find the challenge you wish to delete data in the right pane
-  ![Finding a key in localStorage Chrome Developer Tools](http://i.imgur.com/O57tcuN.png)
-* Right click the desired challenge and select `Delete`
-
-In Firefox:
-* On **freecodecamp.com**, open your web console with
-  * `Ctrl` + `Shift` + `K`
-* From there, using directly the console:
-  * Type `console.log(localStorage);` and hit `Enter`.
-  * Click in `Storage` link.
-    ![Print the localStorage Object from web console and show the Storage](http://i.imgur.com/AsflWtv.png)
-  * The **Storage** panel will appear at right.
-  * Filter the results to find the bonfire, zipline or waypoint causing the problem.
-  * When located, mouse over it and click the `x` at right.
-    ![Click the x for deleting the value entry.](http://i.imgur.com/3URr4jQ.png)
-  * Once removed, check if the problem was solved. Refresh or close and open the browser if necessary.
-
+Removing specific values from your browser's local storage will solve many problems related to the browser crashing or freezing on FreeCodeCamp.
+
+This solves, as example, a common problem with browser hanging out in a challenge's page after saving a response with an infinite loop.
+
+When this happens, you must delete the value in `localStorage` storing that response.
+
+In Chrome:
+* On **freecodecamp.com**, open your developer tools.
+  * More tools > Developer tools (or `Ctrl` + `Shift` + `I` (Windows), `Cmd` + `Opt` + `I` (Mac))
+* Navigate to the `Resources` tab
+* Expand the `Local Storage` item in the left pane
+* Select `http://www.freecodecamp.com`
+* Find the challenge you wish to delete data in the right pane
+  ![Finding a key in localStorage Chrome Developer Tools](http://i.imgur.com/O57tcuN.png)
+* Right click the desired challenge and select `Delete`
+
+In Firefox:
+* On **freecodecamp.com**, open your web console with
+  * `Ctrl` + `Shift` + `K`
+* From there, using directly the console:
+  * Type `console.log(localStorage);` and hit `Enter`.
+  * Click in `Storage` link.
+    ![Print the localStorage Object from web console and show the Storage](http://i.imgur.com/AsflWtv.png)
+  * The **Storage** panel will appear at right.
+  * Filter the results to find the bonfire, zipline or waypoint causing the problem.
+  * When located, mouse over it and click the `x` at right.
+    ![Click the x for deleting the value entry.](http://i.imgur.com/3URr4jQ.png)
+  * Once removed, check if the problem was solved. Refresh or close and open the browser if necessary.
+
 **Note:** This can also be done with the [Storage Inspector](https://developer.mozilla.org/en-US/docs/Tools/Storage_Inspector), but seems like Firefox hangs out when there are so many values.
\ No newline at end of file
diff --git a/How-to-clone-the-FreeCodeCamp-website-on-a-Windows-pc.md b/How-to-clone-the-FreeCodeCamp-website-on-a-Windows-pc.md
index 22afc0c..f8b57a6 100644
--- a/How-to-clone-the-FreeCodeCamp-website-on-a-Windows-pc.md
+++ b/How-to-clone-the-FreeCodeCamp-website-on-a-Windows-pc.md
@@ -1,32 +1,32 @@
-# How to clone and setup the FreeCodeCamp website on a Windows pc
-This list works with the FreeCodeCamp site and have been tested on this Angular tutorial [https://docs.angularjs.org/tutorial](https://docs.angularjs.org/tutorial) as well. Setting up the dev environment on a Windows pc is easy although it will give a ton of errors first in the process. The important part is to correct these errors.
-## Toolchain
-1. Git bash [https://msysgit.github.io/](https://msysgit.github.io/)
-2. Node.js [https://nodejs.org/](https://nodejs.org/)
-3. MongoDB [https://www.mongodb.org/downloads](https://www.mongodb.org/downloads)
-4. Python 2.7.10 [https://www.python.org/downloads/release/python-2710/](https://www.python.org/downloads/release/python-2710/)
-
-Install the 4 downloaded prerequsites. When installing Python and Node it is important to check
- the option add to the path variable. The Node installer does that by default. It is optional to add Mongo to the path. Python should be installed in a subfolder in %programfiles%
- 
-1. Open a command prompt with admin rights
-2. Verify that Node is in th path with node -v
-3. Verify that npm is in the path with npm -v
-5. `npm install npm -g`
-	`npm install bower -g`  
-	`npm install gulp -g`
-	`npm install node-gyp -g` 
-	`npm install babel -g`  
-6. If you want to spare the time in explorer finding Mongo when it has to be started create a .cmd file on your desktop and write the path to Mongo. Probably  %programfiles%\MongoDB\Server\3.0\bin\mongod.exe. 
-7. Create the default folder for mongo to store databases: C:\data\db
-
-**Every command from now on has to be executed from Git Bash. npm install and bower install is downloading components from Git repos and MUST have access to the Git commands**
-
-1. Follow the instructions here [https://github.com/FreeCodeCamp/freecodecamp](https://github.com/FreeCodeCamp/freecodecamp) and clone the project.
-2. Run `npm install` This will produce some warnings and maybe some errors. The warnings and some of the errors can be disregarded. Stackoverflow has large 
-resources to solve the errors if they still come up the 2. time you run npm install.
-3. Run `bower install`, `npm install` again and `bower install`again
-4. Start mongo from the desktop shortcut and run `node seed`. You should now see a lot of activity in the window where you started mongo.
-5. Run `gulp` and note what port it starts the site on. (Should be 3000) Open localhost:3000 (or whatever port it started)
-
-**you're good to go**
+# How to clone and setup the FreeCodeCamp website on a Windows pc
+This list works with the FreeCodeCamp site and have been tested on this Angular tutorial [https://docs.angularjs.org/tutorial](https://docs.angularjs.org/tutorial) as well. Setting up the dev environment on a Windows pc is easy although it will give a ton of errors first in the process. The important part is to correct these errors.
+## Toolchain
+1. Git bash [https://msysgit.github.io/](https://msysgit.github.io/)
+2. Node.js [https://nodejs.org/](https://nodejs.org/)
+3. MongoDB [https://www.mongodb.org/downloads](https://www.mongodb.org/downloads)
+4. Python 2.7.10 [https://www.python.org/downloads/release/python-2710/](https://www.python.org/downloads/release/python-2710/)
+
+Install the 4 downloaded prerequsites. When installing Python and Node it is important to check
+ the option add to the path variable. The Node installer does that by default. It is optional to add Mongo to the path. Python should be installed in a subfolder in %programfiles%
+ 
+1. Open a command prompt with admin rights
+2. Verify that Node is in th path with node -v
+3. Verify that npm is in the path with npm -v
+5. `npm install npm -g`
+	`npm install bower -g`  
+	`npm install gulp -g`
+	`npm install node-gyp -g` 
+	`npm install babel -g`  
+6. If you want to spare the time in explorer finding Mongo when it has to be started create a .cmd file on your desktop and write the path to Mongo. Probably  %programfiles%\MongoDB\Server\3.0\bin\mongod.exe. 
+7. Create the default folder for mongo to store databases: C:\data\db
+
+**Every command from now on has to be executed from Git Bash. npm install and bower install is downloading components from Git repos and MUST have access to the Git commands**
+
+1. Follow the instructions here [https://github.com/FreeCodeCamp/freecodecamp](https://github.com/FreeCodeCamp/freecodecamp) and clone the project.
+2. Run `npm install` This will produce some warnings and maybe some errors. The warnings and some of the errors can be disregarded. Stackoverflow has large 
+resources to solve the errors if they still come up the 2. time you run npm install.
+3. Run `bower install`, `npm install` again and `bower install`again
+4. Start mongo from the desktop shortcut and run `node seed`. You should now see a lot of activity in the window where you started mongo.
+5. Run `gulp` and note what port it starts the site on. (Should be 3000) Open localhost:3000 (or whatever port it started)
+
+**you're good to go**
diff --git a/How-to-create-a-Campsite-for-your-city.md b/How-to-create-a-Campsite-for-your-city.md
index b86f854..5323f82 100644
--- a/How-to-create-a-Campsite-for-your-city.md
+++ b/How-to-create-a-Campsite-for-your-city.md
@@ -1,36 +1,36 @@
-If you didn't see your city on [our list of Campsites](https://github.com/FreeCodeCamp/freecodecamp/wiki/List-of-Free-Code-Camp-city-based-Campsites), you should create your own Facebook group for your city.
- 
-Please follow these steps: 
-- Sign in to Facebook. 
-- Click the down arrow in the upper right corner of the screen, then choose "Create Group" from the options.
-
-![A screenshot of Facebook showing the drop down menu that appears when you click the down arrow, with an arrow pointing to the "Create Group" option](https://www.evernote.com/shard/s116/sh/d01bb2bc-6260-4987-bedf-b2ce4c31972f/3eecbcff3109036cf90b69589360f407/deep/0/Facebook.png)
-- Set the group name as "Free Code Camp" plus the proper name of your city. Avoid using slang terms such as "Philly" for "Philadelphia". If your city is not the biggest city that uses its name, also include the state or province. For example, the Free Code Camp group in Paris, France should be called "Free Code Camp Paris". The Free Code Camp group in Paris, Texas should be called "Free Code Camp Paris, Texas". 
-- Set your group to public. 
-- You'll need to add at least one friend from your city to this group in order to create the group. 
-
-![A screenshot of the Facebook group creation modal saying that your group name should be Free Code Camp plus your city name, that your group should be public, and that you need to invite at least one Facebook friend.](https://www.evernote.com/shard/s116/sh/4ed3197c-db1b-4103-a040-b42482ad232a/6c34948ebe12c57f0b7a54d7b2222ab3/deep/0/Facebook.png)
-- Choose the graduation cap icon to indicate that this group is related to a school. 
-
-![a screenshot telling you to choose the graduation icon, which is on the forth row of icons, seven icons from the left.](https://www.evernote.com/shard/s116/sh/00e461b3-e0a8-4ecd-9cbf-8b0ae9de75d1/59c4e9f25672b1b2ca2d7e6b06d55e0b/deep/0/Facebook.png)
-- Click the "..." menu, then click "Edit group settings" in the dropdown menu. 
-
-![a screenshot telling you to click the "..." button then choose the "Edit group settings" option](https://www.evernote.com/shard/s116/sh/ae9a22e2-19a5-4309-b46c-f05a6be5644c/0870b25572d37d4d650cca1a0d59e407/deep/0/Free-Code-Camp-Testland.png)
-- Set the group's privacy setting to public. 
-- Set your group's membership approval to where any member can add or approve members ![a screenshot showing the Facebook settings panel and where you can click to set the group to public and allow all members to be able to add or approve members>
-- Click the "Customize Address" button.
-
-![A screen shot showing you the group description box on the Facebook page.](https://www.evernote.com/l/AHTs6Ec_hylKyYWVhpZonOHPn8j8I5ydgv4B/image.png)
-- Enter "free.code.camp.your.city.name" with each word separated by periods. 
-
-![a screenshot telling you to enter free.code.camp.your.city.name with each word seperated by periods.](https://www.evernote.com/shard/s116/sh/357b1bd9-7c40-4f72-8a9a-d918e632a5e8/c4714ca59360b2517dfffe90c60b1556/deep/0/Free-Code-Camp-Testland.png)
-- Please feel free to personalize your city's group description, but be sure to include a link to Free Code Camp: "http://www.freecodecamp.com". 
-
-![A screen shot showing you the group description box on the Facebook page.](https://www.evernote.com/shard/s116/sh/e13808ea-f084-46f1-95bc-63db524383d5/0586484d44360e73e9acda956dad7f6a/deep/0/Free-Code-Camp-Testland.png)
-- Click the "Upload a photo button. To start out, you'll probably just want to use Free Code Camp's banner (download it [here](https://s3.amazonaws.com/freecodecamp/wide-social-banner.png)), or a scenic shot of your city. Later you can update this with a picture from one of your city's Free Code Camp events. 
-
-![A screenshot showing the "Upload a photo" button.](https://www.evernote.com/shard/s116/sh/fabe226a-5a26-4508-b015-1dac35192a21/37f8119dc57845a31e972217714b038b/deep/0/Free-Code-Camp-Testland.png)
-- [message @quincylarson in Gitter](https://gitter.im/QuincyLarson) with a link to your city's group page. He'll include it on this list.
-- Join our [Local Leaders Facebook group](https://www.facebook.com/groups/freecodecampers/), where we share ideas about involving campers in your city. 
-
+If you didn't see your city on [our list of Campsites](https://github.com/FreeCodeCamp/freecodecamp/wiki/List-of-Free-Code-Camp-city-based-Campsites), you should create your own Facebook group for your city.
+ 
+Please follow these steps: 
+- Sign in to Facebook. 
+- Click the down arrow in the upper right corner of the screen, then choose "Create Group" from the options.
+
+![A screenshot of Facebook showing the drop down menu that appears when you click the down arrow, with an arrow pointing to the "Create Group" option](https://www.evernote.com/shard/s116/sh/d01bb2bc-6260-4987-bedf-b2ce4c31972f/3eecbcff3109036cf90b69589360f407/deep/0/Facebook.png)
+- Set the group name as "Free Code Camp" plus the proper name of your city. Avoid using slang terms such as "Philly" for "Philadelphia". If your city is not the biggest city that uses its name, also include the state or province. For example, the Free Code Camp group in Paris, France should be called "Free Code Camp Paris". The Free Code Camp group in Paris, Texas should be called "Free Code Camp Paris, Texas". 
+- Set your group to public. 
+- You'll need to add at least one friend from your city to this group in order to create the group. 
+
+![A screenshot of the Facebook group creation modal saying that your group name should be Free Code Camp plus your city name, that your group should be public, and that you need to invite at least one Facebook friend.](https://www.evernote.com/shard/s116/sh/4ed3197c-db1b-4103-a040-b42482ad232a/6c34948ebe12c57f0b7a54d7b2222ab3/deep/0/Facebook.png)
+- Choose the graduation cap icon to indicate that this group is related to a school. 
+
+![a screenshot telling you to choose the graduation icon, which is on the forth row of icons, seven icons from the left.](https://www.evernote.com/shard/s116/sh/00e461b3-e0a8-4ecd-9cbf-8b0ae9de75d1/59c4e9f25672b1b2ca2d7e6b06d55e0b/deep/0/Facebook.png)
+- Click the "..." menu, then click "Edit group settings" in the dropdown menu. 
+
+![a screenshot telling you to click the "..." button then choose the "Edit group settings" option](https://www.evernote.com/shard/s116/sh/ae9a22e2-19a5-4309-b46c-f05a6be5644c/0870b25572d37d4d650cca1a0d59e407/deep/0/Free-Code-Camp-Testland.png)
+- Set the group's privacy setting to public. 
+- Set your group's membership approval to where any member can add or approve members ![a screenshot showing the Facebook settings panel and where you can click to set the group to public and allow all members to be able to add or approve members>
+- Click the "Customize Address" button.
+
+![A screen shot showing you the group description box on the Facebook page.](https://www.evernote.com/l/AHTs6Ec_hylKyYWVhpZonOHPn8j8I5ydgv4B/image.png)
+- Enter "free.code.camp.your.city.name" with each word separated by periods. 
+
+![a screenshot telling you to enter free.code.camp.your.city.name with each word seperated by periods.](https://www.evernote.com/shard/s116/sh/357b1bd9-7c40-4f72-8a9a-d918e632a5e8/c4714ca59360b2517dfffe90c60b1556/deep/0/Free-Code-Camp-Testland.png)
+- Please feel free to personalize your city's group description, but be sure to include a link to Free Code Camp: "http://www.freecodecamp.com". 
+
+![A screen shot showing you the group description box on the Facebook page.](https://www.evernote.com/shard/s116/sh/e13808ea-f084-46f1-95bc-63db524383d5/0586484d44360e73e9acda956dad7f6a/deep/0/Free-Code-Camp-Testland.png)
+- Click the "Upload a photo button. To start out, you'll probably just want to use Free Code Camp's banner (download it [here](https://s3.amazonaws.com/freecodecamp/wide-social-banner.png)), or a scenic shot of your city. Later you can update this with a picture from one of your city's Free Code Camp events. 
+
+![A screenshot showing the "Upload a photo" button.](https://www.evernote.com/shard/s116/sh/fabe226a-5a26-4508-b015-1dac35192a21/37f8119dc57845a31e972217714b038b/deep/0/Free-Code-Camp-Testland.png)
+- [message @quincylarson in Gitter](https://gitter.im/QuincyLarson) with a link to your city's group page. He'll include it on this list.
+- Join our [Local Leaders Facebook group](https://www.facebook.com/groups/freecodecampers/), where we share ideas about involving campers in your city. 
+
 If you don't have a Facebook account, we strongly recommend you create one, even if it's just for the purpose of coordinating with campers in your city through this group. 
\ No newline at end of file
diff --git a/How-to-deploy-a-website-without-writing-any-code-at-all.md b/How-to-deploy-a-website-without-writing-any-code-at-all.md
index c3ed849..30da960 100644
--- a/How-to-deploy-a-website-without-writing-any-code-at-all.md
+++ b/How-to-deploy-a-website-without-writing-any-code-at-all.md
@@ -1,12 +1,12 @@
-It's possible to build dynamic, mobile-responsive websites without writing any code at all, in just a few minutes.
-
-https://player.vimeo.com/video/115194017
-
-Here are the technologies we used here:
-
-- [atom.io](http://www.atom.io/) a free code editor 
-- [startbootstrap.com](http://www.startbootstrap.com/) a collection of free responsive (Bootstrap) templates 
-- [powr.io](http://www.powr.io/) a collection of free JavaScript plugins 
-- [bitballoon.com](http://www.bitballoon.com/) a tool for drag and drop website deployment
-
+It's possible to build dynamic, mobile-responsive websites without writing any code at all, in just a few minutes.
+
+https://player.vimeo.com/video/115194017
+
+Here are the technologies we used here:
+
+- [atom.io](http://www.atom.io/) a free code editor 
+- [startbootstrap.com](http://www.startbootstrap.com/) a collection of free responsive (Bootstrap) templates 
+- [powr.io](http://www.powr.io/) a collection of free JavaScript plugins 
+- [bitballoon.com](http://www.bitballoon.com/) a tool for drag and drop website deployment
+
 You will quickly reach the limits of what you can do without actually coding, but it's nice to be able to rapidly build working prototype websites like this.
\ No newline at end of file
diff --git a/How-to-get-help-when-you-get-stuck.md b/How-to-get-help-when-you-get-stuck.md
index 0010b01..1b6d7a5 100644
--- a/How-to-get-help-when-you-get-stuck.md
+++ b/How-to-get-help-when-you-get-stuck.md
@@ -1,21 +1,21 @@
-When you get stuck, remember: Read-Search-Ask.
-
-1) **Read** the documentation or error    
-2) **Search** Google    
-3) **Ask** your friends for help    
-
-This is the most time-efficient way to handle being stuck, and it's the most respectful of other people's time, too.
-
-Most of the time, you'll solve your problem after just one or two steps of this algorithm.
-
-We have a special chat room just for getting help: <a href='https://gitter.im/freecodecamp/help/' target='_blank'>https://gitter.im/freecodecamp/help/</a>
-
-Camper Bianca Mihai has also written a 3 article series on what she does when she gets stuck:
-
-[How to start when you are stuck (I)](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-to-start-when-you-are-stuck-(I))
-
-[How to start when you are stuck (II)](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-to-start-when-you-are-stuck-(II))
-
-[How to start when you are stuck (III)](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-to-start-when-you-are-stuck-(III))
-
+When you get stuck, remember: Read-Search-Ask.
+
+1) **Read** the documentation or error    
+2) **Search** Google    
+3) **Ask** your friends for help    
+
+This is the most time-efficient way to handle being stuck, and it's the most respectful of other people's time, too.
+
+Most of the time, you'll solve your problem after just one or two steps of this algorithm.
+
+We have a special chat room just for getting help: <a href='https://gitter.im/freecodecamp/help/' target='_blank'>https://gitter.im/freecodecamp/help/</a>
+
+Camper Bianca Mihai has also written a 3 article series on what she does when she gets stuck:
+
+[How to start when you are stuck (I)](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-to-start-when-you-are-stuck-(I))
+
+[How to start when you are stuck (II)](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-to-start-when-you-are-stuck-(II))
+
+[How to start when you are stuck (III)](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-to-start-when-you-are-stuck-(III))
+
 Learning to code is hard. But it's a lot easier if you ask for help when you need it!
\ No newline at end of file
diff --git a/How-to-get-the-MEAN-stack-running-locally-on-OSX.md b/How-to-get-the-MEAN-stack-running-locally-on-OSX.md
index 03466a9..25e1694 100644
--- a/How-to-get-the-MEAN-stack-running-locally-on-OSX.md
+++ b/How-to-get-the-MEAN-stack-running-locally-on-OSX.md
@@ -1,97 +1,97 @@
-## Requirements
-To install MongoDB, you should have Mac OS X 10.6 (Snow Leopard) or above. To find out which version of OS X you own, click the  icon in the top left corner of your screen and select `About This Mac`.
-
-:warning: **WARNING:** do a Time Machine backup before carrying out any of the following steps!
-
-## Step 1: installing MongoDB
-The easiest way to install MongoDB on OS X is using [HomeBrew](http://brew.sh/). If you haven't used HomeBrew before, simply execute the following command in a Terminal window:
-```sh
-ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
-```
-After HomeBrew is successfully installed, follow up with this command:
-```sh
-brew update && brew install mongodb
-```
-HomeBrew will automatically install all the dependencies for you.
-
-## Step 2: installing Node.js
-Again, we'll let HomeBrew do the heavy lifting:
-```sh
-brew install node
-```
-The npm executable is already included in the Node.js package.
-
-Before continuing, let's make sure Node.js modules can be found by others (:warning: **CAUTION**: it's best to copy and paste these commands, as you'd lose the original contents of your `.bashrc` file if you typed `>` in place of `>>`):
-```sh
-echo 'export NODE_PATH="./node_modules:/usr/local/lib/node_modules"' >> ~/.bashrc && source ~/.bashrc
-```
-To check if the configuration is in effect, execute:
-```sh
-echo $NODE_PATH
-```
-You should see `./node_modules:/usr/local/lib/node_modules` printed out below your command.
-
-If you use a different shell than Bash, simply replace `~/.bashrc` with your shell configuration file.
-
-## Step 3: installing fullstack tools
-```sh
-npm install -g express yo grunt grunt-cli generator-angular-fullstack bower
-```
-
-## Step 4: generating a fullstack app
-Make a directory for your Basejump projects. Assuming your desktop is your de facto workspace:
-```sh
-mkdir ~/Desktop/basejumps && cd ~/Desktop/basejumps
-```
-Now that all the preparations are in place, it's time for the main event:
-```sh
-yo angular-fullstack
-```
-Answer the questions according to checklist items #13-23 of [Waypoint: Get Set for Basejumps](http://www.freecodecamp.com/challenges/waypoint-get-set-for-basejumps). Consult #24-27 if you run into errors. This will download ~350MB worth of files into your current directory.
-
-Before going any further, we need to fix a [known issue](https://github.com/clnhll/guidetobasejumps#fixing-exportsupdate) in some generated files:
-```sh
-echo "sed -i '' -e 's/_.merge/_.extend/' server/api/*/*.controller.js" > \
-fix-exports-update.sh && chmod +x fix-exports-update.sh && \
-./fix-exports-update.sh
-```
-You need to run `./fix-exports-update.sh` every time you generate a new API endpoint (until they fix this upstream, that is).
-
-## Step 5: initialising local Git repository
-Tell Git not to track your database:
-```sh
-echo "data" >> .gitignore
-```
-
-Turn the directory in which your application is located into a Git repository by running the following commands: 
-```sh
-git init && git add . && git commit -am 'initial commit'
-```
-
-## Step 6: starting MongoDB
-To start MongoDB for the first time in your app's directory, run the following commands in your terminal: 
-```sh
-mkdir data && echo 'mongod --config /usr/local/etc/mongod.conf --dbpath=data --rest "$@" --httpinterface' > mongod.sh && chmod a+x mongod.sh && ./mongod.sh
-```
-From this point on you can simply start MongoDB by executing `./mongod.sh`. A few things to note:
-* The `.conf` file directs `mongod` to write messages to a log file instead of stdout. To view the log, run the following in a separate Terminal tab: `less /usr/local/var/log/mongodb/mongo.log`.
-* Since we're not on Cloud9, we don't need the `--nojournal` option. Journaling lets you recover the database in case of a `mongod` crash.
-* You have to make a clean database for each project. If you copied the `data` directory over from an earlier project, `mongod` will fail to start. If that's the case, just `rm -rf data && mkdir data && ./mongod.sh`.
-
-## Step 7: starting Grunt
-Open a new Terminal tab by pressing `⌘T`, and run the following command:
-```sh
-grunt serve
-```
-Grunt should automatically open your new Angular site's index page as soon as it finishes starting up.
-
-Now you should be able to follow the rest of the Waypoint instructions to push to GitHub and Heroku. Just ignore the part about SSH key (#33-36) and replace `~/workspace` with your app directory's path.
-
-***
-
-##### Footnote
-The above steps were tested under the following configuration:
-* OS X 10.10.5
-* zsh 5.0.8 (x86_64-apple-darwin14.3.0)
-* node v0.12.7
+## Requirements
+To install MongoDB, you should have Mac OS X 10.6 (Snow Leopard) or above. To find out which version of OS X you own, click the  icon in the top left corner of your screen and select `About This Mac`.
+
+:warning: **WARNING:** do a Time Machine backup before carrying out any of the following steps!
+
+## Step 1: installing MongoDB
+The easiest way to install MongoDB on OS X is using [HomeBrew](http://brew.sh/). If you haven't used HomeBrew before, simply execute the following command in a Terminal window:
+```sh
+ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
+```
+After HomeBrew is successfully installed, follow up with this command:
+```sh
+brew update && brew install mongodb
+```
+HomeBrew will automatically install all the dependencies for you.
+
+## Step 2: installing Node.js
+Again, we'll let HomeBrew do the heavy lifting:
+```sh
+brew install node
+```
+The npm executable is already included in the Node.js package.
+
+Before continuing, let's make sure Node.js modules can be found by others (:warning: **CAUTION**: it's best to copy and paste these commands, as you'd lose the original contents of your `.bashrc` file if you typed `>` in place of `>>`):
+```sh
+echo 'export NODE_PATH="./node_modules:/usr/local/lib/node_modules"' >> ~/.bashrc && source ~/.bashrc
+```
+To check if the configuration is in effect, execute:
+```sh
+echo $NODE_PATH
+```
+You should see `./node_modules:/usr/local/lib/node_modules` printed out below your command.
+
+If you use a different shell than Bash, simply replace `~/.bashrc` with your shell configuration file.
+
+## Step 3: installing fullstack tools
+```sh
+npm install -g express yo grunt grunt-cli generator-angular-fullstack bower
+```
+
+## Step 4: generating a fullstack app
+Make a directory for your Basejump projects. Assuming your desktop is your de facto workspace:
+```sh
+mkdir ~/Desktop/basejumps && cd ~/Desktop/basejumps
+```
+Now that all the preparations are in place, it's time for the main event:
+```sh
+yo angular-fullstack
+```
+Answer the questions according to checklist items #13-23 of [Waypoint: Get Set for Basejumps](http://www.freecodecamp.com/challenges/waypoint-get-set-for-basejumps). Consult #24-27 if you run into errors. This will download ~350MB worth of files into your current directory.
+
+Before going any further, we need to fix a [known issue](https://github.com/clnhll/guidetobasejumps#fixing-exportsupdate) in some generated files:
+```sh
+echo "sed -i '' -e 's/_.merge/_.extend/' server/api/*/*.controller.js" > \
+fix-exports-update.sh && chmod +x fix-exports-update.sh && \
+./fix-exports-update.sh
+```
+You need to run `./fix-exports-update.sh` every time you generate a new API endpoint (until they fix this upstream, that is).
+
+## Step 5: initialising local Git repository
+Tell Git not to track your database:
+```sh
+echo "data" >> .gitignore
+```
+
+Turn the directory in which your application is located into a Git repository by running the following commands: 
+```sh
+git init && git add . && git commit -am 'initial commit'
+```
+
+## Step 6: starting MongoDB
+To start MongoDB for the first time in your app's directory, run the following commands in your terminal: 
+```sh
+mkdir data && echo 'mongod --config /usr/local/etc/mongod.conf --dbpath=data --rest "$@" --httpinterface' > mongod.sh && chmod a+x mongod.sh && ./mongod.sh
+```
+From this point on you can simply start MongoDB by executing `./mongod.sh`. A few things to note:
+* The `.conf` file directs `mongod` to write messages to a log file instead of stdout. To view the log, run the following in a separate Terminal tab: `less /usr/local/var/log/mongodb/mongo.log`.
+* Since we're not on Cloud9, we don't need the `--nojournal` option. Journaling lets you recover the database in case of a `mongod` crash.
+* You have to make a clean database for each project. If you copied the `data` directory over from an earlier project, `mongod` will fail to start. If that's the case, just `rm -rf data && mkdir data && ./mongod.sh`.
+
+## Step 7: starting Grunt
+Open a new Terminal tab by pressing `⌘T`, and run the following command:
+```sh
+grunt serve
+```
+Grunt should automatically open your new Angular site's index page as soon as it finishes starting up.
+
+Now you should be able to follow the rest of the Waypoint instructions to push to GitHub and Heroku. Just ignore the part about SSH key (#33-36) and replace `~/workspace` with your app directory's path.
+
+***
+
+##### Footnote
+The above steps were tested under the following configuration:
+* OS X 10.10.5
+* zsh 5.0.8 (x86_64-apple-darwin14.3.0)
+* node v0.12.7
 * npm 2.11.3
\ No newline at end of file
diff --git a/How-to-install-Screenhero.md b/How-to-install-Screenhero.md
index 17118db..65dcee4 100644
--- a/How-to-install-Screenhero.md
+++ b/How-to-install-Screenhero.md
@@ -1,17 +1,17 @@
-[Download for Mac](http://links.screenhero.com/e/c/eyJlbWFpbF9pZCI6Ik1qQTNNem9XQkNJQ1pBQUNjd0FYQVZrVEdnRkxNamtfX0JWZEdGVEpSZkVCWlRwbFpXRTBNamM0WVMxaE56SmlMVEV4WlRRdE9HUXpZUzFpWXpVNE1HRTJNalkxTldNNk1UUTJNVEEyQUE9PSIsInBvc2l0aW9uIjowLCJocmVmIjoiaHR0cDovL2RsLnNjcmVlbmhlcm8uY29tL3NtYXJ0ZG93bmxvYWQvZklYQU1UUUJBTEtQQkhQTC9TY3JlZW5oZXJvLnppcD9zb3VyY2U9d2ViIn0=) 
-
-[Download for Windows](http://links.screenhero.com/e/c/eyJlbWFpbF9pZCI6Ik1qQTNNem9XQkNJQ1pBQUNjd0FYQVZrVEdnRkxNamtfX0JWZEdGVEpSZkVCWlRwbFpXRTBNamM0WVMxaE56SmlMVEV4WlRRdE9HUXpZUzFpWXpVNE1HRTJNalkxTldNNk1UUTJNVEEyQUE9PSIsInBvc2l0aW9uIjoxLCJocmVmIjoiaHR0cDovL2RsLnNjcmVlbmhlcm8uY29tL3NtYXJ0ZG93bmxvYWQvZklYQU1UUUJBTEtQQkhQTC9TY3JlZW5oZXJvLXNldHVwLmV4ZSJ9) 
-
-You'll use Screenhero to pair program on the Bonfires and Zipline challenges.
-
-Here are other alternatives to Screenhero as suggested by our fellow campers:
-
-* TeamViewer (also works for Linux)	
-* Skype + ScreenLeap
-* Codeshare.io
-* Kobra.io
-* Google Hangouts
-* jsbin
-* Cloud 9
-* Appear.in
+[Download for Mac](http://links.screenhero.com/e/c/eyJlbWFpbF9pZCI6Ik1qQTNNem9XQkNJQ1pBQUNjd0FYQVZrVEdnRkxNamtfX0JWZEdGVEpSZkVCWlRwbFpXRTBNamM0WVMxaE56SmlMVEV4WlRRdE9HUXpZUzFpWXpVNE1HRTJNalkxTldNNk1UUTJNVEEyQUE9PSIsInBvc2l0aW9uIjowLCJocmVmIjoiaHR0cDovL2RsLnNjcmVlbmhlcm8uY29tL3NtYXJ0ZG93bmxvYWQvZklYQU1UUUJBTEtQQkhQTC9TY3JlZW5oZXJvLnppcD9zb3VyY2U9d2ViIn0=) 
+
+[Download for Windows](http://links.screenhero.com/e/c/eyJlbWFpbF9pZCI6Ik1qQTNNem9XQkNJQ1pBQUNjd0FYQVZrVEdnRkxNamtfX0JWZEdGVEpSZkVCWlRwbFpXRTBNamM0WVMxaE56SmlMVEV4WlRRdE9HUXpZUzFpWXpVNE1HRTJNalkxTldNNk1UUTJNVEEyQUE9PSIsInBvc2l0aW9uIjoxLCJocmVmIjoiaHR0cDovL2RsLnNjcmVlbmhlcm8uY29tL3NtYXJ0ZG93bmxvYWQvZklYQU1UUUJBTEtQQkhQTC9TY3JlZW5oZXJvLXNldHVwLmV4ZSJ9) 
+
+You'll use Screenhero to pair program on the Bonfires and Zipline challenges.
+
+Here are other alternatives to Screenhero as suggested by our fellow campers:
+
+* TeamViewer (also works for Linux)	
+* Skype + ScreenLeap
+* Codeshare.io
+* Kobra.io
+* Google Hangouts
+* jsbin
+* Cloud 9
+* Appear.in
 * [tmate](http://tmate.io) + some communication tool, e.g, Google Hangouts, Skype, [appear.in](http://appear.in)
\ No newline at end of file
diff --git a/How-to-know-who-is-in-charge-of-your-Campsite-on-Facebook.md b/How-to-know-who-is-in-charge-of-your-Campsite-on-Facebook.md
index ebe8114..dd7a271 100644
--- a/How-to-know-who-is-in-charge-of-your-Campsite-on-Facebook.md
+++ b/How-to-know-who-is-in-charge-of-your-Campsite-on-Facebook.md
@@ -1,17 +1,17 @@
-Local communities are ever-changing, and there can be more than one Volunteer Community Manager for your city. To become an Admin in the Facebook group, follow the steps below.
-
-How to find out who is an Admin for your Campsite:
-
-* First, click the Members tab below the cover photo. Then the click on the dropdown box that says "all members"**
-
-![](http://i.imgur.com/qLx6kVZ.png?1)
-
-* Next, use the drop down box to select "Admins"**
-
-![](http://i.imgur.com/pfB2pDP.png?1)
-
-* You should now be able to see who is designated as an Admin for your Campsite.
-
-![](http://i.imgur.com/AwoYT01.png?1)
-
+Local communities are ever-changing, and there can be more than one Volunteer Community Manager for your city. To become an Admin in the Facebook group, follow the steps below.
+
+How to find out who is an Admin for your Campsite:
+
+* First, click the Members tab below the cover photo. Then the click on the dropdown box that says "all members"**
+
+![](http://i.imgur.com/qLx6kVZ.png?1)
+
+* Next, use the drop down box to select "Admins"**
+
+![](http://i.imgur.com/pfB2pDP.png?1)
+
+* You should now be able to see who is designated as an Admin for your Campsite.
+
+![](http://i.imgur.com/AwoYT01.png?1)
+
 Message this person to introduce yourself and let them know you're interested in being an admin. After this, go schedule your first meetup.
\ No newline at end of file
diff --git a/How-to-share-your-workspace-selfie-with-FreeCodeCamp-on-instagram.md b/How-to-share-your-workspace-selfie-with-FreeCodeCamp-on-instagram.md
index 07cd5eb..388f853 100644
--- a/How-to-share-your-workspace-selfie-with-FreeCodeCamp-on-instagram.md
+++ b/How-to-share-your-workspace-selfie-with-FreeCodeCamp-on-instagram.md
@@ -1,9 +1,9 @@
-# FreeCodecamp is on instagram! Here is how to take a workspace selfie and share it with us.
-
-## Take a selfie of you at your workspace with Free Code Camp open.
-
-![](https://www.evernote.com/l/AkpdrY2nGrtBO69RoxdNq8rluri5K7B367YB/image.png)
-
-## Share it on Instagram, Twitter or Facebook with the hashtag #freecodecamp.
-
-## Social media not your thing? No problem! Email your workspace selfie to team@freecodecamp.com
+# FreeCodecamp is on instagram! Here is how to take a workspace selfie and share it with us.
+
+## Take a selfie of you at your workspace with Free Code Camp open.
+
+![](https://www.evernote.com/l/AkpdrY2nGrtBO69RoxdNq8rluri5K7B367YB/image.png)
+
+## Share it on Instagram, Twitter or Facebook with the hashtag #freecodecamp.
+
+## Social media not your thing? No problem! Email your workspace selfie to team@freecodecamp.com
diff --git a/How-to-start-when-you-are-stuck-(I).md b/How-to-start-when-you-are-stuck-(I).md
index 1d5b136..0571280 100644
--- a/How-to-start-when-you-are-stuck-(I).md
+++ b/How-to-start-when-you-are-stuck-(I).md
@@ -1,21 +1,21 @@
-**[How to start when you are stuck (II)](https://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-start-when-you-are-stuck-(II))**
-
-**[How to start when you are stuck (III)](https://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-start-when-you-are-stuck-(III))**
-
-You are a camper just like me, you get to an exercise and you get stuck … just like anyone else. You have no idea how to start, you stare at your editor and you think you must have a problem, surely you are not developer material … well you’re wrong!  Perhaps you are just like me? I’m a visual person, I like a drawing better than a text. Everytime the same problem put down in a schema makes more sense to me than if you gave me a text. So … what do I do when I have problems solving/understanding an exercise? I start to draw. After I have my drawing in place if I need more to translate it to code I can also write it in pseudocode. After that transposing it to code should not be very hard. 
-
-### So what are this flowcharts (the drawings) and pseudocode?
-
-During my first semester in college, we had a course about introduction to algorithms. This is where we first learned about this stuff. We learned that a good algorithm and good logical programing is developed using flowcharts and pseudocode.
-
-A **flowchart** represents your program flow from top to bottom. Each command is represented on this. Depending on the nature of the command there are different shapes you can use. A few of them that I mostly use (you can google more on this, google is your friend when you know what to google for) are:
-
-![](http://biancamihai.github.io/img/flowchart-theory.png)
-
-More information about this you can find here https://en.wikipedia.org/wiki/Flowchart.
-
-**Pseudocode** is an informal language that helps developers write algorithms. It is a text-based design tool and it uses a human readable language. It’s a structured english text that describes an algorithm. 
-
-Every bonfire in Free Code Camp curriculum can be solved using pseudocode and after that translated using javascript in a functional javascript code.
-
+**[How to start when you are stuck (II)](https://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-start-when-you-are-stuck-(II))**
+
+**[How to start when you are stuck (III)](https://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-start-when-you-are-stuck-(III))**
+
+You are a camper just like me, you get to an exercise and you get stuck … just like anyone else. You have no idea how to start, you stare at your editor and you think you must have a problem, surely you are not developer material … well you’re wrong!  Perhaps you are just like me? I’m a visual person, I like a drawing better than a text. Everytime the same problem put down in a schema makes more sense to me than if you gave me a text. So … what do I do when I have problems solving/understanding an exercise? I start to draw. After I have my drawing in place if I need more to translate it to code I can also write it in pseudocode. After that transposing it to code should not be very hard. 
+
+### So what are this flowcharts (the drawings) and pseudocode?
+
+During my first semester in college, we had a course about introduction to algorithms. This is where we first learned about this stuff. We learned that a good algorithm and good logical programing is developed using flowcharts and pseudocode.
+
+A **flowchart** represents your program flow from top to bottom. Each command is represented on this. Depending on the nature of the command there are different shapes you can use. A few of them that I mostly use (you can google more on this, google is your friend when you know what to google for) are:
+
+![](http://biancamihai.github.io/img/flowchart-theory.png)
+
+More information about this you can find here https://en.wikipedia.org/wiki/Flowchart.
+
+**Pseudocode** is an informal language that helps developers write algorithms. It is a text-based design tool and it uses a human readable language. It’s a structured english text that describes an algorithm. 
+
+Every bonfire in Free Code Camp curriculum can be solved using pseudocode and after that translated using javascript in a functional javascript code.
+
 **[How to start when you are stuck (II)](https://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-start-when-you-are-stuck-(II))**
\ No newline at end of file
diff --git a/How-to-start-when-you-are-stuck-(II).md b/How-to-start-when-you-are-stuck-(II).md
index b0034eb..a621470 100644
--- a/How-to-start-when-you-are-stuck-(II).md
+++ b/How-to-start-when-you-are-stuck-(II).md
@@ -1,30 +1,30 @@
-**[How to start when you are stuck (I)](https://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-start-when-you-are-stuck-(I))**
-
-**[How to start when you are stuck (III)](https://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-start-when-you-are-stuck-(III))**
-
-Let’s try an example. If we take a look at one of the Free Code Camp exercices, and let’s choose a more simple one: [find the longest word in a string](http://www.freecodecamp.com/challenges/bonfire-find-the-longest-word-in-a-string). We can start and draw a flowchart for it and write a first solution in pseudocode.
-
-![](http://biancamihai.github.io/img/bonfire-1.png)
-
-So what does Free Code Camp want from us with this problem? Well it wants as to create a function that gets a string as a parameter and returns an integer. This integer should represent the length of the longest word in this string. Usually you can solve a problem on Free Code Camp by just looking at the **More information** text. In this case Free code camp is giving us some very good tips:
-    
-    Return the length of the longest word in the provided sentence.
-    Your response should be a number.
-    Remember to use RSAP if you get stuck. Try to pair program. Write your own code.
-    Here are some helpful links: String.split(), String.length
-
-If we take a look at the Free Code Camp suggestions we’ll see that String.split() can be used to split a string into an array and String.length gives us the length of a string. This helps us think of an algorithm. What if we split the string into an array, we loop through it and using the length attribute we find out the length of the longest word. Hmm, doesn’t seem very complicated but how to start this? Well ... take a look at the image below. 
-
-![](http://biancamihai.github.io/img/flowchart.png)
-
-If we follow the schema AND/OR the pseudocode, writing the function that gives us the length of the longest word in a string shouldn’t be very hard now … in any language … not just in javascript.
-
-![](http://biancamihai.github.io/img/bonfire-2.png)
-
-Now that we have this first working version, we can try and rewrite it using a for loop. Or we can take a look at forEach and if we really want to go wild we can rewrite this using the functional programming way. So let’s challenge ourselves to write a “one line” solution for the problem. 
-
-Searching through the MDN documentation you’ll find out that you can use the max function on arrays and that there is a map function that helps us change the current array. Hmm … that should should help us … right? Yes! the idea remains the same, you get a string, split it into an array and you return an integer but here is how:
-
-![](http://biancamihai.github.io/img/bonfire-3.png)
-
+**[How to start when you are stuck (I)](https://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-start-when-you-are-stuck-(I))**
+
+**[How to start when you are stuck (III)](https://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-start-when-you-are-stuck-(III))**
+
+Let’s try an example. If we take a look at one of the Free Code Camp exercices, and let’s choose a more simple one: [find the longest word in a string](http://www.freecodecamp.com/challenges/bonfire-find-the-longest-word-in-a-string). We can start and draw a flowchart for it and write a first solution in pseudocode.
+
+![](http://biancamihai.github.io/img/bonfire-1.png)
+
+So what does Free Code Camp want from us with this problem? Well it wants as to create a function that gets a string as a parameter and returns an integer. This integer should represent the length of the longest word in this string. Usually you can solve a problem on Free Code Camp by just looking at the **More information** text. In this case Free code camp is giving us some very good tips:
+    
+    Return the length of the longest word in the provided sentence.
+    Your response should be a number.
+    Remember to use RSAP if you get stuck. Try to pair program. Write your own code.
+    Here are some helpful links: String.split(), String.length
+
+If we take a look at the Free Code Camp suggestions we’ll see that String.split() can be used to split a string into an array and String.length gives us the length of a string. This helps us think of an algorithm. What if we split the string into an array, we loop through it and using the length attribute we find out the length of the longest word. Hmm, doesn’t seem very complicated but how to start this? Well ... take a look at the image below. 
+
+![](http://biancamihai.github.io/img/flowchart.png)
+
+If we follow the schema AND/OR the pseudocode, writing the function that gives us the length of the longest word in a string shouldn’t be very hard now … in any language … not just in javascript.
+
+![](http://biancamihai.github.io/img/bonfire-2.png)
+
+Now that we have this first working version, we can try and rewrite it using a for loop. Or we can take a look at forEach and if we really want to go wild we can rewrite this using the functional programming way. So let’s challenge ourselves to write a “one line” solution for the problem. 
+
+Searching through the MDN documentation you’ll find out that you can use the max function on arrays and that there is a map function that helps us change the current array. Hmm … that should should help us … right? Yes! the idea remains the same, you get a string, split it into an array and you return an integer but here is how:
+
+![](http://biancamihai.github.io/img/bonfire-3.png)
+
 **[How to start when you are stuck (III)](https://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-start-when-you-are-stuck-(III))**
\ No newline at end of file
diff --git a/How-to-start-when-you-are-stuck-(III).md b/How-to-start-when-you-are-stuck-(III).md
index 0471b7d..6c46055 100644
--- a/How-to-start-when-you-are-stuck-(III).md
+++ b/How-to-start-when-you-are-stuck-(III).md
@@ -1,14 +1,14 @@
-**[How to start when you are stuck (I)](https://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-start-when-you-are-stuck-(I))**
-
-**[How to start when you are stuck (II)](https://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-start-when-you-are-stuck-(II))**
-
-### Tips
-
-* Always look at your logs, keep your console open. You can spot errors faster this way. To open the console log on chrome: click right -> inspect -> console There are so many errors that come from typos and so much time lost that you can save just by developing this very simple habit 
-* Pair with other programmers as much as you can
-* Read the documentation. You can install a very helpful [MDN Chrome Extension](https://chrome.google.com/webstore/detail/mdn-search/ffpifaemeofjmncjdbegmbpcdaemkeoc) and use it as much and often as you need to
-* Follow the help tips provided by Free Code Camp in the “More informations” section. The answer is there!
-* Try to solve the problem in more than one way, always try to make it better, more readable, a lower complexity time, less memory
-* If none of the above steps work, ask for help :)
-
+**[How to start when you are stuck (I)](https://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-start-when-you-are-stuck-(I))**
+
+**[How to start when you are stuck (II)](https://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-start-when-you-are-stuck-(II))**
+
+### Tips
+
+* Always look at your logs, keep your console open. You can spot errors faster this way. To open the console log on chrome: click right -> inspect -> console There are so many errors that come from typos and so much time lost that you can save just by developing this very simple habit 
+* Pair with other programmers as much as you can
+* Read the documentation. You can install a very helpful [MDN Chrome Extension](https://chrome.google.com/webstore/detail/mdn-search/ffpifaemeofjmncjdbegmbpcdaemkeoc) and use it as much and often as you need to
+* Follow the help tips provided by Free Code Camp in the “More informations” section. The answer is there!
+* Try to solve the problem in more than one way, always try to make it better, more readable, a lower complexity time, less memory
+* If none of the above steps work, ask for help :)
+
 ![](http://biancamihai.github.io/img/console.png)
\ No newline at end of file
diff --git a/How-to-use-the-Free-Code-Camp-Wiki.md b/How-to-use-the-Free-Code-Camp-Wiki.md
index 18f15cc..997d94f 100644
--- a/How-to-use-the-Free-Code-Camp-Wiki.md
+++ b/How-to-use-the-Free-Code-Camp-Wiki.md
@@ -1,18 +1,18 @@
-The Free Code Camp wiki exists to provide clear answers to common questions about Free Code Camp, learning to code, and getting a coding job. Please feel free to add relevant content to the wiki. Just be sure to search for a topic and see if it already exists before starting a new page.
-
-Individual Wiki's can be accessed from the main page, or from other linked Wiki pages.  
-
-You can also access them from Gitter using Camperbot 
-
-- #### **`help $topic`**  
-  find related materials to that topic, usually a page from the [wiki]
-  (https://github.com/FreeCodeCamp/freecodecamp/wiki)  
-  examples: `help css` `help bootstrap`
-
-- #### `topics`
-  show the list of topics.
-
-- #### `find $topic` 
-  this will search for entries that include `$topic` in the title. We'll add fulltext search in    
-  future.  
-  examples: `find wiki`
+The Free Code Camp wiki exists to provide clear answers to common questions about Free Code Camp, learning to code, and getting a coding job. Please feel free to add relevant content to the wiki. Just be sure to search for a topic and see if it already exists before starting a new page.
+
+Individual Wiki's can be accessed from the main page, or from other linked Wiki pages.  
+
+You can also access them from Gitter using Camperbot 
+
+- #### **`help $topic`**  
+  find related materials to that topic, usually a page from the [wiki]
+  (https://github.com/FreeCodeCamp/freecodecamp/wiki)  
+  examples: `help css` `help bootstrap`
+
+- #### `topics`
+  show the list of topics.
+
+- #### `find $topic` 
+  this will search for entries that include `$topic` in the title. We'll add fulltext search in    
+  future.  
+  examples: `find wiki`
diff --git a/How-you-can-get-to-Inbox-Zero-with-Gmail-shortcuts.md b/How-you-can-get-to-Inbox-Zero-with-Gmail-shortcuts.md
index b07d7ab..56ec5b0 100644
--- a/How-you-can-get-to-Inbox-Zero-with-Gmail-shortcuts.md
+++ b/How-you-can-get-to-Inbox-Zero-with-Gmail-shortcuts.md
@@ -1,21 +1,21 @@
-> These Gmail Shortcuts will save you hours and help you get to Inbox Zero.
-
-See https://player.vimeo.com/video/115194016
-
-### Gmail Shortcuts
-| shortcut 	| description 	|
-|----------	|------------:	|
-| j        	|   move down 	|
-| k        	|     move up 	|
-| o        	|        open 	|
-| r        	|       reply 	|
-| a        	|   reply all 	|
-| f        	|     forward 	|
-| c        	|     compose 	|
-| x        	|      select 	|
-| e        	|     archive 	|
-| !        	|   mark spam 	|
-| z        	|        undo 	|
-| \#       	|     *delete 	|
-
+> These Gmail Shortcuts will save you hours and help you get to Inbox Zero.
+
+See https://player.vimeo.com/video/115194016
+
+### Gmail Shortcuts
+| shortcut 	| description 	|
+|----------	|------------:	|
+| j        	|   move down 	|
+| k        	|     move up 	|
+| o        	|        open 	|
+| r        	|       reply 	|
+| a        	|   reply all 	|
+| f        	|     forward 	|
+| c        	|     compose 	|
+| x        	|      select 	|
+| e        	|     archive 	|
+| !        	|   mark spam 	|
+| z        	|        undo 	|
+| \#       	|     *delete 	|
+
 \* This may not work on some EU Mac keyboards where # is accessed with, `ALT + 3`. Workaround [here](http://toodlepip.co.uk/2010/blog-2010-09-gmail-delete-key-shortcut-uk-apple-users/).
\ No newline at end of file
diff --git a/How-you-can-help-to-stimulate-your-city's-Campsite-on-Facebook.md b/How-you-can-help-to-stimulate-your-city's-Campsite-on-Facebook.md
index 997b61a..c53e012 100644
--- a/How-you-can-help-to-stimulate-your-city's-Campsite-on-Facebook.md
+++ b/How-you-can-help-to-stimulate-your-city's-Campsite-on-Facebook.md
@@ -1,10 +1,10 @@
-
-## A great way to stimulate your Campsite is by asking questions.     
-**You can ask questions like**
-* What is everyone working on this week?
-* How did you approach a specific waypoint, bonfire, zipline, basejump?
-* Would anyone be interested in meeting up to pair program together this week?
-* Did everyone hear about "insert recent announcement"
-* What are some parts of free code camp you'd like to give additional focus to?
-
+
+## A great way to stimulate your Campsite is by asking questions.     
+**You can ask questions like**
+* What is everyone working on this week?
+* How did you approach a specific waypoint, bonfire, zipline, basejump?
+* Would anyone be interested in meeting up to pair program together this week?
+* Did everyone hear about "insert recent announcement"
+* What are some parts of free code camp you'd like to give additional focus to?
+
 **You can also provide useful links for other members to relevant resources that you find helpful.**
\ No newline at end of file
diff --git a/How-you-can-reach-the-Free-Code-Camp-team-to-interview-them-for-your-publication.md b/How-you-can-reach-the-Free-Code-Camp-team-to-interview-them-for-your-publication.md
index 345bc0b..e544098 100644
--- a/How-you-can-reach-the-Free-Code-Camp-team-to-interview-them-for-your-publication.md
+++ b/How-you-can-reach-the-Free-Code-Camp-team-to-interview-them-for-your-publication.md
@@ -1,8 +1,8 @@
-We're happy to do a quick interview for your publication or show. Here's whom you should contact about what, and how to best reach them:
-
-- Want to talk to about Free Code Camp's curriculum or long-term vision? Reach out to Quincy Larson. He's [@ossia on Twitter](https://twitter.com/ossia)</a> and @quincylarson on Gitter.
-- Want to talk about Free Code Camp's open source codebase, infrastructure, or JavaScript in general? Talk to Berkeley Martinez. He's [@berkeleytrue on Twitter](https://twitter.com/berkeleytrue) and @berkeleytrue on Gitter.
-- Want to explore our efforts to empower nonprofits with code? Michael D. Johnson eats, sleeps and breathes that. He's [@figitalboy on Twitter](https://twitter.com/figitalboy) and @codenonprofit on Gitter.
-- Want to get a camper's perspective on our community? Talk with Bianca Mihai. She's [@bubuslubu on Twitter](https://twitter.com/bubuslubu) and @biancamihai on Gitter. Or you can talk with Suzanne Atkinson. She's [@steelcitycoach on Twitter](https://twitter.com/SteelCityCoach) and @adventurebear on Gitter.
-
+We're happy to do a quick interview for your publication or show. Here's whom you should contact about what, and how to best reach them:
+
+- Want to talk to about Free Code Camp's curriculum or long-term vision? Reach out to Quincy Larson. He's [@ossia on Twitter](https://twitter.com/ossia)</a> and @quincylarson on Gitter.
+- Want to talk about Free Code Camp's open source codebase, infrastructure, or JavaScript in general? Talk to Berkeley Martinez. He's [@berkeleytrue on Twitter](https://twitter.com/berkeleytrue) and @berkeleytrue on Gitter.
+- Want to explore our efforts to empower nonprofits with code? Michael D. Johnson eats, sleeps and breathes that. He's [@figitalboy on Twitter](https://twitter.com/figitalboy) and @codenonprofit on Gitter.
+- Want to get a camper's perspective on our community? Talk with Bianca Mihai. She's [@bubuslubu on Twitter](https://twitter.com/bubuslubu) and @biancamihai on Gitter. Or you can talk with Suzanne Atkinson. She's [@steelcitycoach on Twitter](https://twitter.com/SteelCityCoach) and @adventurebear on Gitter.
+
 We strive to be helpful and transparent in everything we do. We'll do what we can to help you share our community with your audience.
\ No newline at end of file
diff --git a/Html-and-CSS-Cheat-Sheet.md b/Html-and-CSS-Cheat-Sheet.md
index 84a8286..f135374 100644
--- a/Html-and-CSS-Cheat-Sheet.md
+++ b/Html-and-CSS-Cheat-Sheet.md
@@ -1,30 +1,30 @@
-# This a page that (hopefully) in time will grow to cover the basic and simple HTML and CSS solutions. 
-### Please add to your alternate solutions if you know a different way.
-
-## <hr> making a `<hr>` horizontal rule smaller
-    hr {
-      width: 75%;
-      margin-left: auto;
-      margin-right: auto;
-    }
-<hr>
-### Giving a `<div>` non scrolling background 
-
-
-    #divName {
-      padding-top: 50px;
-      height: 500px;
-      color: #fff;
-      background-image: url("your_url.jpg");
-      background-repeat: no-repeat;
-      background-attachment: fixed;
-      background-size: 100%;
-    }
-try different values to see the how it affects the div<br> 
-and over in the html<br>
-    `<div id="divName" class="container-fluid">`
-<hr>
-### Center a horizontal list
-
-http://csswizardry.com/2011/01/create-a-centred-horizontal-navigation/
+# This a page that (hopefully) in time will grow to cover the basic and simple HTML and CSS solutions. 
+### Please add to your alternate solutions if you know a different way.
+
+## <hr> making a `<hr>` horizontal rule smaller
+    hr {
+      width: 75%;
+      margin-left: auto;
+      margin-right: auto;
+    }
+<hr>
+### Giving a `<div>` non scrolling background 
+
+
+    #divName {
+      padding-top: 50px;
+      height: 500px;
+      color: #fff;
+      background-image: url("your_url.jpg");
+      background-repeat: no-repeat;
+      background-attachment: fixed;
+      background-size: 100%;
+    }
+try different values to see the how it affects the div<br> 
+and over in the html<br>
+    `<div id="divName" class="container-fluid">`
+<hr>
+### Center a horizontal list
+
+http://csswizardry.com/2011/01/create-a-centred-horizontal-navigation/
 <hr>
\ No newline at end of file
diff --git a/IIFE.md b/IIFE.md
index ba36059..650a012 100644
--- a/IIFE.md
+++ b/IIFE.md
@@ -1,9 +1,9 @@
-> IIFE — initialism for Immediately Invoked Function Expression
-
-Keep your data inside the [closure](https://github.com/freecodecamp/freecodecamp/wiki/js-closures)!
-
-```js
-(function(){
-  //add your magic here
-})();
+> IIFE — initialism for Immediately Invoked Function Expression
+
+Keep your data inside the [closure](https://github.com/freecodecamp/freecodecamp/wiki/js-closures)!
+
+```js
+(function(){
+  //add your magic here
+})();
 ```
\ No newline at end of file
diff --git a/If-Free-Code-Camp-is-free,-how-does-it-make-money.md b/If-Free-Code-Camp-is-free,-how-does-it-make-money.md
index 60e5aa5..c722f28 100644
--- a/If-Free-Code-Camp-is-free,-how-does-it-make-money.md
+++ b/If-Free-Code-Camp-is-free,-how-does-it-make-money.md
@@ -1,7 +1,7 @@
-We will always be completely free for both students and for nonprofits.
-
-Our name is Free Code Camp. We are a free code camp. If you had to pay us (or sign over future earnings), we'd have to change our name. And we are not going to do that.
-
-Everyone working on our community and our open source projects is a volunteer.
-
+We will always be completely free for both students and for nonprofits.
+
+Our name is Free Code Camp. We are a free code camp. If you had to pay us (or sign over future earnings), we'd have to change our name. And we are not going to do that.
+
+Everyone working on our community and our open source projects is a volunteer.
+
 We plan to eventually cover our operational costs by earning job placement bonuses from companies who hire our graduates. Note that we will not actually garnish any wages from our graduates - employers are already paying recruiters thousands of dollars to find successful candidates. Employers will simply pay the recruitment bonus to Free Code Camp instead of paying a recruiter.
\ No newline at end of file
diff --git a/Intro-to-Yeoman-Angular-Fullstack-Basejumps.md b/Intro-to-Yeoman-Angular-Fullstack-Basejumps.md
index e484c12..2ea4784 100644
--- a/Intro-to-Yeoman-Angular-Fullstack-Basejumps.md
+++ b/Intro-to-Yeoman-Angular-Fullstack-Basejumps.md
@@ -1,9 +1,9 @@
-> Hey FreeCodeCampers! This guide is here to help you navigate creating your first basejump. When I encountered the first basejump, I had no idea what was going on and spent weeks learning all of these things myself. Everything here is stuff I wish I had known coming into the basejumps. Oh and by the way, if you have a question that isn't answered by this guide, that's an issue, and you should report it as an issue to this repository! —[@clnhll](http://twitter.com/clnhll)
-
-Yeoman is a tool that allows you to generate barebones apps based on different software stacks using “generator” packages made by developers who want to make your life easier. These packages streamline your time developing and deploying websites using your platform of choice. We’re using a full-stack MEAN (MongoDB, ExpressJS, AngularJS, NodeJS) generator called generator-angular-fullstack by DaftMonk (https://github.com/DaftMonk/generator-angular-fullstack).
-
-Once you’ve completed the Waypoint: Get Set for Basejumps, use this guide to navigate the base structure of your new app and learn how to interact with the database as well as the user.
-
-[NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Guide-to-Basejumps-Table-of-Contents)
-
+> Hey FreeCodeCampers! This guide is here to help you navigate creating your first basejump. When I encountered the first basejump, I had no idea what was going on and spent weeks learning all of these things myself. Everything here is stuff I wish I had known coming into the basejumps. Oh and by the way, if you have a question that isn't answered by this guide, that's an issue, and you should report it as an issue to this repository! —[@clnhll](http://twitter.com/clnhll)
+
+Yeoman is a tool that allows you to generate barebones apps based on different software stacks using “generator” packages made by developers who want to make your life easier. These packages streamline your time developing and deploying websites using your platform of choice. We’re using a full-stack MEAN (MongoDB, ExpressJS, AngularJS, NodeJS) generator called generator-angular-fullstack by DaftMonk (https://github.com/DaftMonk/generator-angular-fullstack).
+
+Once you’ve completed the Waypoint: Get Set for Basejumps, use this guide to navigate the base structure of your new app and learn how to interact with the database as well as the user.
+
+[NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Guide-to-Basejumps-Table-of-Contents)
+
 Sourced from (https://github.com/clnhll/guidetobasejumps) with permission.
\ No newline at end of file
diff --git a/JS-Regex-Resources.md b/JS-Regex-Resources.md
index 6e0707b..b84a6d8 100644
--- a/JS-Regex-Resources.md
+++ b/JS-Regex-Resources.md
@@ -1,30 +1,30 @@
-> Links to useful RegEx resources. 
-
-* **Getting Started Tutorial:** http://regexone.com (FCC recommended)
-* **RegEx 101:** https://regex101.com
-
-See also: :clipboard: [**Tutorials**](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Regex-Resources#regex-tutorial--guides) | :syringe: [**Testing**](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Regex-Resources#regex-testing-ground) | :soccer: [Games](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Regex-Resources#regex-gameplay) | :newspaper: [Blogs](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Regex-Resources#regex-blog) | :package: [Software](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Regex-Resources#regex-software-aids)
-
-## RegEx Tutorial & Guides
-* **RegEx Tutorial:** http://www.regular-expressions.info/tutorial.html (detailed explanation)
-* **RegEx Cheatsheet:** http://www.cheatography.com/davechild/cheat-sheets/regular-expressions
-* **MDN RegEx Guide:** https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
-* **StackOverflow RegEx FAQ:** http://stackoverflow.com/a/22944075/1262108
-* **RegEx Video Tutorial:** https://www.youtube.com/watch?v=EkluES9Rvak
-
-## RegEx Testing Ground
-* **RegEx Visualizer:** https://www.debuggex.com/?flavor=javascript
-* **RegEx Challenges in Hackerrank:** https://www.hackerrank.com/domains/algorithms/regex (practice)
-* **RegEx Regexplained:** https://leaverou.github.io/regexplained/
-
-## RegEx Gameplay
-* **RegEx Golf:** http://regex.alf.nu
-* **RegEx Crossword:** http://regexcrossword.com
-
-## RegEx Blog
-* **Rex Egg:** http://www.rexegg.com
-
-## RegEx Software Aids
-* **RegExBuddy:** http://www.regexbuddy.com (proprietary)
-* **Expresso:** http://www.ultrapico.com/expresso.htm (free)
+> Links to useful RegEx resources. 
+
+* **Getting Started Tutorial:** http://regexone.com (FCC recommended)
+* **RegEx 101:** https://regex101.com
+
+See also: :clipboard: [**Tutorials**](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Regex-Resources#regex-tutorial--guides) | :syringe: [**Testing**](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Regex-Resources#regex-testing-ground) | :soccer: [Games](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Regex-Resources#regex-gameplay) | :newspaper: [Blogs](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Regex-Resources#regex-blog) | :package: [Software](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Regex-Resources#regex-software-aids)
+
+## RegEx Tutorial & Guides
+* **RegEx Tutorial:** http://www.regular-expressions.info/tutorial.html (detailed explanation)
+* **RegEx Cheatsheet:** http://www.cheatography.com/davechild/cheat-sheets/regular-expressions
+* **MDN RegEx Guide:** https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
+* **StackOverflow RegEx FAQ:** http://stackoverflow.com/a/22944075/1262108
+* **RegEx Video Tutorial:** https://www.youtube.com/watch?v=EkluES9Rvak
+
+## RegEx Testing Ground
+* **RegEx Visualizer:** https://www.debuggex.com/?flavor=javascript
+* **RegEx Challenges in Hackerrank:** https://www.hackerrank.com/domains/algorithms/regex (practice)
+* **RegEx Regexplained:** https://leaverou.github.io/regexplained/
+
+## RegEx Gameplay
+* **RegEx Golf:** http://regex.alf.nu
+* **RegEx Crossword:** http://regexcrossword.com
+
+## RegEx Blog
+* **Rex Egg:** http://www.rexegg.com
+
+## RegEx Software Aids
+* **RegExBuddy:** http://www.regexbuddy.com (proprietary)
+* **Expresso:** http://www.ultrapico.com/expresso.htm (free)
 * **RegEx Coach:** http://www.weitz.de/regex-coach/ (free)
\ No newline at end of file
diff --git a/JS-Resources.md b/JS-Resources.md
index 72a614e..eb580ad 100644
--- a/JS-Resources.md
+++ b/JS-Resources.md
@@ -1,70 +1,70 @@
-### Tutorials
-- [JavaScript for Cats](http://jsforcats.com/)
-- [Professor Frisby's Mostly Adequate Guide to Functional Programming](https://github.com/DrBoolean/mostly-adequate-guide)
-- [Eloquent Javascript](http://www.eloquentjavascript.net) ([*annotated*](https://watchandcode.com/courses/eloquent-javascript-the-annotated-version))
-- [Speaking Javascript](http://speakingjs.com/es5/)
-- [Exploring ES6](http://exploringjs.com/es6/)
-- [Udemy - Javascript Understanding the Weird Parts (*first 3.5 hrs*)](https://www.youtube.com/watch?v=Bv_5Zv5c-Ts)
-
-### References
-- [DevDocs](http://devdocs.io)
-- [OverAPI JavaScript Cheat Sheet](http://overapi.com/javascript/)
-- [ECMA-262](http://www.ecma-international.org/publications/standards/Ecma-262.htm)
-
-Find javascript libraries at http://jster.net
-
-See Also: :loop: [**Quick JS**](https://github.com/freecodecamp/freecodecamp/wiki/js-resources#quick-js) | :watch: [**Challenges**](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Resources#challenges) | :wrench: [**Exercises**](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Resources#exercises) | :clipboard: [Editors](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Resources#editors) | :newspaper: [Blogs](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Resources#blogs) | :books: [Books](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Resources#books)
-
-## []()
-
-### Quick JS
-- [REPL](https://repl.it/languages/Javascript) ([*node*](https://repl.it/languages/iojs/))
-- [JSBin](http://jsbin.com)
-- [CodePen](http://codepen.io)
-- [CoderPad (*pair programming*)](http://coderpad.io) ([*Get Demo access forever*](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Resources#coderpad-demo-access-forever) :smile: )
-- [C9 (*IDE*, *pair programming*)](http://c9.io)
-- [Object Playground (*visualize objects*)](http://www.objectplayground.com/)
-- [Plunker](http://plnkr.co)
-
-### Challenges
-- [Code Wars](http://codewars.com)
-- [Hacker Rank](https://hackerrank.com)
-- [Coding Game](http://codingame.com)
-
-### Exercises
-- [Codility](https://codility.com/programmers/lessons/)
-- [Coderbyte](http://coderbyte.com)
-- [Exercism](http://exercism.io)
-
-### Editors
-- [Brackets](http://brackets.io)
-- [Atom](http://atom.io)
-
-### Blogs
-- [Perfection Kills](http://perfectionkills.com)
-- [2ality](http://www.2ality.com/)
-
-### Books
-- [Secrets of the JavaScript Ninja](https://www.manning.com/books/secrets-of-the-javascript-ninja)
-- [Programming JavaScript Applications](http://ericleads.com/javascript-applications/)
-- [Maintainable JavaScript](http://shop.oreilly.com/product/0636920025245.do)
-- [Learning JavaScript Design Patterns](http://addyosmani.com/resources/essentialjsdesignpatterns/book/)
-- [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript)
-- [JSDoc](http://usejsdoc.org/)
-
-----
-
-### CoderPad Demo Access Forever
-[![](http://i.imgur.com/PQQjg9k.gif)](http://i.imgur.com/PQQjg9k.gif)
-
-- [Eloquent Javascript](http://www.eloquentjavascript.net)   
-Fantastic, thorough introduction to the basics and features of Javascript, complete with in-browser interactive code
-
-- [Eloquent Javascript - The Annotated Version](https://watchandcode.com/courses/eloquent-javascript-the-annotated-version)   
-An annotated version of the above Eloquent Javascript with additional helpful comments and discussions to help clarify some sections that might be confusing to newcomers to programming
-
-* [Professor Frisby's Mostly Adequate Guide to Functional Programming](https://github.com/DrBoolean/mostly-adequate-guide)   
-Quite in-depth guide to Functional Programming in Javascript
-
-----
+### Tutorials
+- [JavaScript for Cats](http://jsforcats.com/)
+- [Professor Frisby's Mostly Adequate Guide to Functional Programming](https://github.com/DrBoolean/mostly-adequate-guide)
+- [Eloquent Javascript](http://www.eloquentjavascript.net) ([*annotated*](https://watchandcode.com/courses/eloquent-javascript-the-annotated-version))
+- [Speaking Javascript](http://speakingjs.com/es5/)
+- [Exploring ES6](http://exploringjs.com/es6/)
+- [Udemy - Javascript Understanding the Weird Parts (*first 3.5 hrs*)](https://www.youtube.com/watch?v=Bv_5Zv5c-Ts)
+
+### References
+- [DevDocs](http://devdocs.io)
+- [OverAPI JavaScript Cheat Sheet](http://overapi.com/javascript/)
+- [ECMA-262](http://www.ecma-international.org/publications/standards/Ecma-262.htm)
+
+Find javascript libraries at http://jster.net
+
+See Also: :loop: [**Quick JS**](https://github.com/freecodecamp/freecodecamp/wiki/js-resources#quick-js) | :watch: [**Challenges**](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Resources#challenges) | :wrench: [**Exercises**](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Resources#exercises) | :clipboard: [Editors](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Resources#editors) | :newspaper: [Blogs](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Resources#blogs) | :books: [Books](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Resources#books)
+
+## []()
+
+### Quick JS
+- [REPL](https://repl.it/languages/Javascript) ([*node*](https://repl.it/languages/iojs/))
+- [JSBin](http://jsbin.com)
+- [CodePen](http://codepen.io)
+- [CoderPad (*pair programming*)](http://coderpad.io) ([*Get Demo access forever*](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Resources#coderpad-demo-access-forever) :smile: )
+- [C9 (*IDE*, *pair programming*)](http://c9.io)
+- [Object Playground (*visualize objects*)](http://www.objectplayground.com/)
+- [Plunker](http://plnkr.co)
+
+### Challenges
+- [Code Wars](http://codewars.com)
+- [Hacker Rank](https://hackerrank.com)
+- [Coding Game](http://codingame.com)
+
+### Exercises
+- [Codility](https://codility.com/programmers/lessons/)
+- [Coderbyte](http://coderbyte.com)
+- [Exercism](http://exercism.io)
+
+### Editors
+- [Brackets](http://brackets.io)
+- [Atom](http://atom.io)
+
+### Blogs
+- [Perfection Kills](http://perfectionkills.com)
+- [2ality](http://www.2ality.com/)
+
+### Books
+- [Secrets of the JavaScript Ninja](https://www.manning.com/books/secrets-of-the-javascript-ninja)
+- [Programming JavaScript Applications](http://ericleads.com/javascript-applications/)
+- [Maintainable JavaScript](http://shop.oreilly.com/product/0636920025245.do)
+- [Learning JavaScript Design Patterns](http://addyosmani.com/resources/essentialjsdesignpatterns/book/)
+- [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript)
+- [JSDoc](http://usejsdoc.org/)
+
+----
+
+### CoderPad Demo Access Forever
+[![](http://i.imgur.com/PQQjg9k.gif)](http://i.imgur.com/PQQjg9k.gif)
+
+- [Eloquent Javascript](http://www.eloquentjavascript.net)   
+Fantastic, thorough introduction to the basics and features of Javascript, complete with in-browser interactive code
+
+- [Eloquent Javascript - The Annotated Version](https://watchandcode.com/courses/eloquent-javascript-the-annotated-version)   
+An annotated version of the above Eloquent Javascript with additional helpful comments and discussions to help clarify some sections that might be confusing to newcomers to programming
+
+* [Professor Frisby's Mostly Adequate Guide to Functional Programming](https://github.com/DrBoolean/mostly-adequate-guide)   
+Quite in-depth guide to Functional Programming in Javascript
+
+----
 > *Edit this page to add your own suggested reading here*
\ No newline at end of file
diff --git a/JavaScript-Truth-Table.md b/JavaScript-Truth-Table.md
index e9ea3d1..6d9becf 100644
--- a/JavaScript-Truth-Table.md
+++ b/JavaScript-Truth-Table.md
@@ -1,5 +1,5 @@
-![A table showing which JavaScript arguments are true and false.](http://i.stack.imgur.com/35MpY.png)
-
-This is why you should always use `===` and `!==`.
-
+![A table showing which JavaScript arguments are true and false.](http://i.stack.imgur.com/35MpY.png)
+
+This is why you should always use `===` and `!==`.
+
 Source: https://dorey.github.io/JavaScript-Equality-Table/
\ No newline at end of file
diff --git a/Learn-the-basics-of-the-VIM-editor.md b/Learn-the-basics-of-the-VIM-editor.md
index 7f72e2e..08fe81f 100644
--- a/Learn-the-basics-of-the-VIM-editor.md
+++ b/Learn-the-basics-of-the-VIM-editor.md
@@ -1,6 +1,6 @@
-Follow these steps to learn the basics of the powerful VIM command line text editor:
-
-1. Start Terminal on a Mac or Command Prompt on Windows.
-2. Type: vimtutor [ENTER].
-3. Press [ENTER] again and the VIM tutor is displayed.
+Follow these steps to learn the basics of the powerful VIM command line text editor:
+
+1. Start Terminal on a Mac or Command Prompt on Windows.
+2. Type: vimtutor [ENTER].
+3. Press [ENTER] again and the VIM tutor is displayed.
 4. Complete the tutor by reading and following each of the 7 lessons.  
\ No newline at end of file
diff --git a/Linking-Your-Account-with-GitHub.md b/Linking-Your-Account-with-GitHub.md
index 78a84ea..84add94 100644
--- a/Linking-Your-Account-with-GitHub.md
+++ b/Linking-Your-Account-with-GitHub.md
@@ -1,8 +1,8 @@
-In August 2015, we pushed some changes that caused trouble for many of our campers.
-
-If you are unable to link your GitHub account to your current account, here is what we recommend doing: 
-
-1) Sign out with your current account and try signing in with GitHub. 
-2) Check your challenge map. Your account should have no progress. Delete that account here: http://freecodecamp.com/account
-3) Sign into Free Code Camp the way you normally do (Facebook, email, etc). You should see your original progress. 
+In August 2015, we pushed some changes that caused trouble for many of our campers.
+
+If you are unable to link your GitHub account to your current account, here is what we recommend doing: 
+
+1) Sign out with your current account and try signing in with GitHub. 
+2) Check your challenge map. Your account should have no progress. Delete that account here: http://freecodecamp.com/account
+3) Sign into Free Code Camp the way you normally do (Facebook, email, etc). You should see your original progress. 
 3) Now add GitHub to that account, and you should be all set.
\ No newline at end of file
diff --git a/List-of-Free-Code-Camp-city-based-Campsites.md b/List-of-Free-Code-Camp-city-based-Campsites.md
index d717f06..7b7263e 100644
--- a/List-of-Free-Code-Camp-city-based-Campsites.md
+++ b/List-of-Free-Code-Camp-city-based-Campsites.md
@@ -1,525 +1,525 @@
-##Hundreds of cities around the world have Free Code Camp Facebook groups, called Campsites.
-
-Campers at these Campsites share links, hang out together, and organize local Coffee-n-Code events.
-
-If your city isn't listed here, you should [[create a Campsite for your city|How-to-create-a-Campsite-for-your-city]].
-
-[Aarhus](//www.facebook.com/groups/FreeCodeCampAarhus)    
-[Abu Dhabi](//www.facebook.com/groups/free.code.camp.abu.dhabi/)    
-[Abuja](https://www.facebook.com/groups/abuja.free.code.camp/)    
-[Accra](//www.facebook.com/groups/free.code.camp.accra/)    
-[Addis Abeda](https://www.facebook.com/groups/free.code.camp.addis.abeba/)    
-[Adelaide](//www.facebook.com/groups/free.code.camp.adelaide/)    
-[Ahmedabad](//www.facebook.com/groups/free.code.camp.ahmedabad/)    
-[Aichi](//www.facebook.com/groups/free.code.camp.aichi/)    
-[Alameda](//www.facebook.com/groups/free.code.camp.berkeley/)    
-[Albany](//www.facebook.com/groups/free.code.camp.albany.ny/)    
-[Albuquerque](//www.facebook.com/groups/free.code.camp.albuquerque/)    
-[Algiers](//www.facebook.com/groups/free.code.camp.Algiers/)    
-[Allahabad](//www.facebook.com/groups/free.code.camp.allahabad/)    
-[Almeria](//www.facebook.com/groups/free.code.camp.almeria/)    
-[Americana](//www.facebook.com/groups/free.code.camp.americana/)    
-[Ames](//www.facebook.com/groups/free.code.camp.ames.iowa/)    
-[Amman](//www.facebook.com/groups/free.code.camp.amman/)    
-[Amsterdam](//www.facebook.com/groups/free.code.camp.amsterdam/)    
-[Anacortes](//www.facebook.com/groups/free.code.camp.anacortes/)    
-[Ankara](//www.facebook.com/groups/free.code.camp.ankara/)    
-[Ann Arbor](//www.facebook.com/groups/free.code.camp.ann.arbor/)    
-[Appleton](//www.facebook.com/groups/free.code.camp.appleton/)    
-[Apucarana](//www.facebook.com/groups/free.code.camp.your.apucarana.parana/)    
-[Aracaju](//www.facebook.com/groups/free.code.camp.aracaju/)    
-[Asheville](//www.facebook.com/groups/free.code.camp.asheville/)    
-[Astana](https://www.facebook.com/groups/free.code.camp.astana/)    
-[Asuncion](//www.facebook.com/groups/free.code.camp.asuncion/)    
-[Athens, Ohio](//www.facebook.com/groups/free.code.camp.athens.ohio/)    
-[Athens](//www.facebook.com/groups/free.code.camp.athens.greece/)    
-[Atlanta](//www.facebook.com/groups/free.code.camp.atlanta/)    
-[Auburn, ME]( //www.facebook.com/groups/free.code.camp.auburn.maine/)    
-[Auckland](//www.facebook.com/groups/awesome.code.camp/)    
-[Austin](//www.facebook.com/groups/free.code.camp.austin/)    
-[Bakersfield](//www.facebook.com/groups/free.code.camp.bakersfield.california/)    
-[Baku](//www.facebook.com/groups/free.code.camp.baku/)    
-[Bali](//www.facebook.com/groups/free.code.camp.bali/)    
-[Baltimore](//www.facebook.com/groups/free.code.camp.baltimore/)    
-[Bandung](//www.facebook.com/groups/free.code.camp.bandung/)    
-[Bangkok](//www.facebook.com/groups/free.code.camp.bangkok/)    
-[Banja Luka](//www.facebook.com/groups/free.code.camp.banja.luka/)
-[Barcelona](//www.facebook.com/groups/free.code.camp.barcelona/)    
-[Barranquilla](//www.facebook.com/groups/free.code.camp.barranquilla.co/)    
-[Barrie](//www.facebook.com/groups/free.code.camp.Barrie.Ontario/)    
-[Barrie](//www.facebook.com/groups/free.code.camp.Barrie.Ontario/)    
-[Batticaloa](//www.facebook.com/groups/free.code.camp.batticaloa/)    
-[Beijing](//www.facebook.com/groups/free.code.camp.beijing/)    
-[Beirut](//www.facebook.com/groups/free.code.camp.beirut/)    
-[Belem](//www.facebook.com/groups/free.code.camp.belem/)    
-[Belgrade](//www.facebook.com/groups/free.code.camp.belgrade/)    
-[Belize City](//www.facebook.com/groups/free.code.camp.belize.city/)    
-[Belize](//www.facebook.com/groups/free.code.camp.belize/)    
-[Bellevue](//www.facebook.com/groups/free.code.camp.bellevue/)    
-[Bellingham](//www.facebook.com/groups/free.code.camp.bellingham/)    
-[Belo Horizonte](//www.facebook.com/groups/free.code.camp.belo.horizonte/)    
-[Bengaluru](//www.facebook.com/groups/free.code.camp.bengaluru/)    
-[Berkeley](//www.facebook.com/groups/free.code.camp.berkeley/)    
-[Berlin](//www.facebook.com/groups/free.code.camp.berlin/)    
-[Bhaktapur](//www.facebook.com/groups/free.code.camp.bhaktapur/)    
-[Bhubaneswar](//www.facebook.com/groups/free.code.camp.bhubaneswar/)    
-[Bialystok](//www.facebook.com/groups/free.code.camp.bialystok/)
-[Big Rapids](//www.facebook.com/groups/free.code.camp.bigrapids/)
-[Bijeljina](//www.facebook.com/groups/free.code.camp.bijeljina/)    
-[Birmingham, Alabama](//www.facebook.com/groups/free.code.camp.oxford.al/)    
-[Birmingham](//www.facebook.com/groups/free.code.camp.birmingham.uk/)    
-[Bishkek](//www.facebook.com/groups/free.code.camp.bishkek/)    
-[Bismarck, ND](//www.facebook.com/groups/free.code.camp.bismarck.north.dakota/)    
-[Bloomington, IL](//www.facebook.com/groups/free.code.camp.bloomington.normal/)    
-[Bloomington, IN](//www.facebook.com/groups/free.code.camp.bloomington.in/)    
-[Bogota](//www.facebook.com/groups/free.code.camp.bogota/)    
-[Boise](//www.facebook.com/groups/free.code.camp.boise)    
-[Boston](//www.facebook.com/groups/free.code.camp.boston/)    
-[Boulder](//www.facebook.com/groups/free.code.camp.boulder/)    
-[Braga](//www.facebook.com/groups/free.code.camp.braga/)    
-[Brasilia](//www.facebook.com/groups/free.code.camp.brasilia/)    
-[Brasov](//www.facebook.com/groups/free.code.camp.brasov)    
-[Bratislava](//www.facebook.com/groups/free.code.camp.bratislava/)    
-[Brighton](//www.facebook.com/groups/free.code.camp.brighton/)    
-[Brisbane](//www.facebook.com/groups/free.code.camp.brisbane/)    
-[Brno](//www.facebook.com/groups/free.code.camp.brno/)    
-[Brooksville](https://www.facebook.com/groups/free.code.camp.brooksville.florida/)    
-[Brussels](//www.facebook.com/groups/free.code.camp.brussels/)    
-[Bryan College Station](//www.facebook.com/groups/free.code.camp.bryan.college.station/)    
-[Bucaramanga](//www.facebook.com/groups/free.code.camp.bucaramanga/)    
-[Bucharest](//www.facebook.com/groups/free.code.camp.bucharest/)    
-[Budapest](//www.facebook.com/groups/free.code.camp.budapest/)    
-[Buenos Aires](//www.facebook.com/groups/free.code.camp.buenos.aires/)    
-[Buffalo](//www.facebook.com/groups/free.code.camp.buffalo/)    
-[Bury St Edmunds](//www.facebook.com/groups/free.code.camp.Bury.St.Edmunds/)    
-[Busan](//www.facebook.com/groups/free.code.camp.busan/)    
-[Bushkill](https://www.facebook.com/groups/Free.Code.Camp.Bushkill.PA/)    
-[Butte, MN]( //www.facebook.com/groups/free.code.camp.butte.montana/)    
-[Buzau](https://www.facebook.com/groups/free.code.camp.buzau/)    
-[Bydgoszcz](//www.facebook.com/groups/free.code.camp.bydgoszcz/)    
-[Cagayandeoro City](https://www.facebook.com/groups/free.code.camp.cagayandeoro.city/)    
-[Cairo](//www.facebook.com/groups/free.code.camp.cairo/)    
-[Calabar](//www.facebook.com/groups/free.code.camp.calabar/)    
-[Calgary](//www.facebook.com/groups/free.code.camp.calgary/)    
-[Cali](//www.facebook.com/groups/free.code.camp.cali/)    
-[Cambridge, ON](https://www.facebook.com/groups/free.code.camp.Cambridge.ON.Canada/)    
-[Campinas](//www.facebook.com/groups/free.code.camp.campinas/)    
-[Canberra](//www.facebook.com/groups/free.code.camp.canberra/)    
-[Cape Cod](//www.facebook.com/groups/free.code.camp.cape.cod/)    
-[Cape Town](//www.facebook.com/groups/free.code.camp.cape.town/)    
-[Caracas](//www.facebook.com/groups/free.code.camp.caracas/)    
-[Cardiff](//www.facebook.com/groups/free.code.camp.cardiff/)    
-[Casablanca](//www.facebook.com/groups/free.code.camp.casablanca/)    
-[Catania](//www.facebook.com/groups/free.code.camp.catania/)    
-[Cebu](https://www.facebook.com/groups/free.code.camp.cebu/)    
-[Cedar Rapids](//www.facebook.com/groups/free.code.camp.cedar.rapids/)    
-[Central Mississippi](//www.facebook.com/groups/free.code.camp.central.mississippi/)  
-[Centralia, WA] (//www.facebook.com/groups/free.code.camp.olympia/)  
-[Champaign-Urbana](//www.facebook.com/groups/free.code.camp.champaign.urbana/)    
-[Charleston, WV](https://www.facebook.com/groups/free.code.camp.charleston.wv)    
-[Charlotte](//www.facebook.com/groups/free.code.camp.charlotte.nc/)    
-[Chattanooga](//www.facebook.com/groups/free.code.camp.chattanooga/)    
-[Chennai](//www.facebook.com/groups/free.code.camp.chennai/)    
-[Chernivtsi](//www.facebook.com/groups/free.code.camp.chernivtsi.chernivetska.oblast.u/)    
-[Chiang Mai](//www.facebook.com/groups/free.code.camp.chiang.mai/)    
-[Chicago](//www.facebook.com/groups/free.code.camp.chicago/)    
-[Chisinau](https://www.facebook.com/groups/free.code.camp.Chisinau/)    
-[Christchurch](//www.facebook.com/groups/free.code.camp.christchurch/)    
-[Cincinnati](//www.facebook.com/groups/free.code.camp.cincinnati/)    
-[Clarksville](//www.facebook.com/groups/free.code.camp.clarksville.TN/)    
-[Cleveland](//www.facebook.com/groups/free.code.camp.cleveland/)    
-[Cluj](//www.facebook.com/groups/free.code.camp.cluj)    
-[Coattage Grove](//www.facebook.com/groups/free.code.camp.cottagegrove/)    
-[Coatzacoalcos](//www.facebook.com/groups/free.code.camp.coatzacoalcos/)
-[Coimbatore](//www.facebook.com/groups/free.code.camp.coimbatore)    
-[Colombo](//www.facebook.com/groups/free.code.camp.colombo/)    
-[Colorado Springs](//www.facebook.com/groups/freecodecampcoloradosprings/)    
-[Columbus](//www.facebook.com/groups/free.code.camp.columbus/)    
-[Coventry](//www.facebook.com/groups/free.code.camp.coventry/)    
-[Cuenca](//www.facebook.com/groups/free.code.camp.cuenca/)    
-[Culiacan](//www.facebook.com/groups/free.code.camp.culiacan/)    
-[Curitiba](//www.facebook.com/groups/free.code.camp.curitiba/)    
-[Da Nang](//www.facebook.com/groups/free.code.camp.your.Da.Nang/)
-[Dallas](//www.facebook.com/groups/free.code.camp.dallas/)    
-[Delhi](//www.facebook.com/groups/free.code.camp.delhi/)    
-[Denver](//www.facebook.com/groups/free.code.camp.denver/)    
-[Derby](//www.facebook.com/groups/free.code.camp.derby/)    
-[Des Moines](//www.facebook.com/groups/free.code.camp.des.moines/)    
-[Detroit](//www.facebook.com/groups/free.code.camp.detroit/)    
-[Dhaka](//www.facebook.com/groups/free.code.camp.dhaka/)    
-[Dnipropetrovsk](//www.facebook.com/groups/free.code.camp.dnipropetrovsk)    
-[Doha](//www.facebook.com/groups/free.code.camp.doha/)    
-[Dubai](//www.facebook.com/groups/free.code.camp.dubai/)    
-[Dublin](//www.facebook.com/groups/free.code.camp.dublin/)    
-[Duluth](//www.facebook.com/groups/free.code.camp.duluth/)    
-[Durango](//www.facebook.com/groups/free.code.camp.durango/)    
-[Edinburgh](//www.facebook.com/groups/free.code.camp.edinburgh/)    
-[Edmonton](//www.facebook.com/groups/free.code.camp.edmonton/)    
-[El Paso](//www.facebook.com/groups/free.code.camp.el.paso)    
-[Eugene](//www.facebook.com/groups/free.code.camp.eugene/)
-[Evansville](//www.facebook.com/groups/free.code.camp.evansville.in/)    
-[Farmville](//www.facebook.com/groups/free.code.camp.farmville.va/)    
-[Fayetteville](//www.facebook.com/groups/free.code.camp.fayetteville.arkansas/)    
-[Ferizaj](//www.facebook.com/groups/free.code.camp.ferizaj/)    
-[Firenze](//www.facebook.com/groups/free.code.camp.firenze/)    
-[Flagstaff](//www.facebook.com/groups/free.code.camp.northern.arizona/)    
-[Florianopolis](//www.facebook.com/groups/free.code.camp.florianopolis/)    
-[Floyd, VA](//www.facebook.com/groups/free.code.camp.floyd.virginia/)    
-[Folsom](//www.facebook.com/groups/free.code.camp.folsom)    
-[Fort Collins](//www.facebook.com/groups/free.code.camp.fort.collins/)    
-[Fort Worth](https://www.facebook.com/groups/freecodecampfortworth/)    
-[Fortaleza](//www.facebook.com/groups/free.code.group.fortaleza/)    
-[Frankfort](//www.facebook.com/groups/free.code.camp.frankfort.kentucky/)    
-[Frankfurt](//www.facebook.com/groups/free.code.camp.frankfurt.main/)    
-[Frederick, MD](//www.facebook.com/groups/free.code.camp.frederick.md)    
-[Fredericksburg](//www.facebook.com/groups/free.code.camp.fredericksburg/)    
-[Freehold](//www.facebook.com/groups/free.code.camp.freehold/)    
-[Fremont](//www.facebook.com/groups/free.code.camp.fremont/)    
-[Fresno](//www.facebook.com/groups/free.code.camp.fresno/)    
-[Fuengirola](//www.facebook.com/groups/free.code.camp.fuengirola/)    
-[Gainesville, FL](//www.facebook.com/groups/free.code.camp.gainesville.fla/)    
-[Galveston](//www.facebook.com/groups/free.code.camp.galveston/)    
-[Gdańsk](//www.facebook.com/groups/free.code.camp.trojmiasto/)    
-[Gdynia](//www.facebook.com/groups/free.code.camp.trojmiasto)    
-[Geneva](//www.facebook.com/groups/free.code.camp.geneva/)    
-[Glendora](//www.facebook.com/groups/free.code.camp.Glendora.California/)    
-[Goiania](//www.facebook.com/groups/free.code.camp.goiania/)    
-[Granada](//www.facebook.com/groups/free.code.camp.granada/)    
-[Grand Rapids](//www.facebook.com/groups/free.code.camp.grand.rapids/)    
-[Greenville](//www.facebook.com/groups/free.code.camp.Greenville/)    
-[Guacara](//www.facebook.com/groups/free.code.camp.guacara/)    
-[Guadalajara](//www.facebook.com/groups/fcc.guadalajara)    
-[Guarapuava](//www.facebook.com/groups/free.code.camp.guarapuava/)    
-[Guatemala City](//www.facebook.com/groups/free.code.camp.guatemala/)    
-[Gujrat City](https://www.facebook.com/groups/free.code.camp.gujrat/)    
-[Guntur](//www.facebook.com/groups/free.code.camp.guntur/)    
-[Gurgaon](//www.facebook.com/groups/free.code.camp.gurgaon/)    
-[Göttingen](//www.facebook.com/groups/free.code.camp.goettingen/)    
-[Hagerstown](//www.facebook.com/groups/free.code.camp.hagerstown/)    
-[Haifa]( //www.facebook.com/groups/free.code.camp.Haifa/)    
-[Halifax](//www.facebook.com/groups/free.code.camp.halifax/)    
-[Hamburg](//www.facebook.com/groups/free.code.camp.hamburg/)    
-[Hampton Roads](//www.facebook.com/groups/free.code.camp.hamptonroads/)    
-[Hanoi](//www.facebook.com/groups/free.code.camp.hanoi/)    
-[Harare](//www.facebook.com/groups/free.code.camp.harare/)    
-[Harrisburg, PA](//www.facebook.com/groups/free.code.camp.harrisburg.pa/)    
-[Hartford](//www.facebook.com/groups/free.code.camp.hartford.connecticut/)    
-[Hazelton, BC](https://www.facebook.com/groups/free.code.camp.hazelton.britishcolumbia/)    
-[Hermosillo](//www.facebook.com/groups/free.code.camp.Hermosillo/)    
-[Hickory](//www.facebook.com/groups/free.code.camp.hickory.nc)    
-[Ho Chi Minh City](//www.facebook.com/groups/free.code.camp.hochiminhcity/)    
-[Hobart](//www.facebook.com/groups/free.code.camp.hobart/)    
-[Hong Kong](//www.facebook.com/groups/free.code.camp.hk/)    
-[Houston](//www.facebook.com/groups/free.code.camp.houston/)    
-[Hove](//www.facebook.com/groups/free.code.camp.hove)    
-[Huntsville](//www.facebook.com/groups/free.code.camp.huntsville/)    
-[Hyderabad](//www.facebook.com/groups/free.code.camp.hyderabad/)    
-[Iasi](//www.facebook.com/groups/free.code.camp.iasi.romania/)    
-[idaho Falls](//www.facebook.com/groups/free.code.camp.idaho.falls.idaho/)    
-[Indianapolis](//www.facebook.com/groups/free.code.camp.indianapolis.in/)    
-[Indore](https://www.facebook.com/groups/free.code.camp.Indore/)    
-[Ipswich](//www.facebook.com/groups/free.code.camp.ipswich.qld/)    
-[Irkutsk](//www.facebook.com/groups/free.code.camp.irkutsk/)    
-[Isfahan](//www.facebook.com/groups/free.code.camp.isfahan/)    
-[Islamabad](//www.facebook.com/groups/free.code.camp.islamabad/)    
-[Istanbul](//www.facebook.com/groups/free.code.camp.istanbul/)    
-[Ivano Frankivsk](//www.facebook.com/groups/free.code.camp.ivano.frankivsk/)    
-[Izmir](//www.facebook.com/groups/free.code.camp.izmir)    
-[Jacarei](//www.facebook.com/groups/free.code.camp.sao.paulo.jacarei/)    
-[Jackson, MS](//www.facebook.com/groups/free.code.camp.jackson.ms)    
-[Jacksonville](//www.facebook.com/groups/free.code.camp.jacksonville/)    
-[Jaffna](//www.facebook.com/groups/free.code.camp.jaffna/)    
-[Jaipur](//www.facebook.com/groups/free.code.camp.jaipur/)    
-[Jakarta](//www.facebook.com/groups/free.code.camp.jakarta/)    
-[Jamnagar](//www.facebook.com/groups/free.code.camp.jamnagar.guj.in/)    
-[Jerusalem](//www.facebook.com/groups/free.code.camp.jerusalem/)    
-[Joao Pessoa](//www.facebook.com/groups/free.code.camp.joao.pessoa/)    
-[Johannesburg](//www.facebook.com/groups/free.code.camp.johannesburg/)    
-[Johor](//facebook.com/groups/free.code.camp.nusajaya.malaysia/)    
-[Joinville](//www.facebook.com/groups/free.code.camp.joinville/)    
-[Juarezchi](//www.facebook.com/groups/free.code.camp.juarezchi/)    
-[Kaduna](//www.facebook.com/groups/free.code.camp.kaduna/)    
-[Kalamazoo](//www.facebook.com/groups/free.code.camp.kalamazoo/)    
-[Kampala](//www.facebook.com/groups/free.code.camp.kampala/)    
-[Kansas City](//www.facebook.com/groups/free.code.camp.kansascity/)    
-[Karachi](//www.facebook.com/groups/free.code.camp.karachi/)    
-[Kathmandu](//www.facebook.com/groups/free.code.camp.kathmandu/)    
-[Kemerovo](//www.facebook.com/groups/free.code.camp.kemerovo/)    
-[Kerch](//www.facebook.com/groups/free.code.camp.kerch/)    
-[Kiev](//www.facebook.com/groups/free.code.camp.kiev/)    
-[Killeen](//www.facebook.com/groups/free.code.camp.killeen.texas/)    
-[Kingston, Jamaica](//www.facebook.com/groups/free.code.camp.kingston.jamaica/)    
-[Kingston, ON](//www.facebook.com/groups/free.code.camp.kingston.ontario/)    
-[Kisumu](//www.facebook.com/groups/free.code.camp.Kisumu/)
-[Knoxville](//www.facebook.com/groups/free.code.camp.knoxville.tn/)    
-[Koblenz](//www.facebook.com/groups/free.code.camp.koblenz/)   
-[Koeln](//www.facebook.com/groups/free.code.camp.koeln/)    
-[Kolkata](//www.facebook.com/groups/free.code.camp.kolkata/)    
-[Kosice](//www.facebook.com/groups/free.code.camp.kosice/)    
-[Kosovo](//www.facebook.com/groups/free.code.camp.kosovo/)    
-[Kozhikode](//www.facebook.com/groups/free.code.camp.kozhikode/)    
-[Krasnodar](//www.facebook.com/groups/free.code.camp.krasnodar/)    
-[Kryvyi Rih](//www.facebook.com/groups/free.code.camp.kryvyi.rih/)    
-[Kuala Lumpur](//www.facebook.com/groups/free.code.camp.malaysia.kl/)    
-[Kulsary](https://www.facebook.com/groups/free.code.camp.kulsary/)    
-[La Crosse](//www.facebook.com/groups/free.code.camp.la.crosse)    
-[La Paz](//www.facebook.com/groups/free.code.camp.La.Paz/)    
-[Lae](//www.facebook.com/groups/free.code.camp.papua.new.guinea.lae/)    
-[Lagos](//www.facebook.com/groups/free.code.camp.lagos/)    
-[Lahore](//www.facebook.com/groups/free.code.camp.lahore/)    
-[Lakeland](//www.facebook.com/groups/Free.Code.Camp.Lakeland.Florida/)    
-[Las Cruces](//www.facebook.com/groups/free.code.camp.lc.nm/)    
-[Las Vegas](//www.facebook.com/groups/free.code.camp.las.vegas.nv/)    
-[Lawrence](//www.facebook.com/groups/free.code.camp.lawrence)    
-[Leeds](//www.facebook.com/groups/free.code.camp.leeds/)    
-[Leesburg](//www.facebook.com/groups/free.code.camp.leesburg/)    
-[Leesville](//www.facebook.com/groups/free.code.camp.leesville.la/)    
-[Lehi](//www.facebook.com/groups/free.code.camp.lehi/)    
-[Lexington](//www.facebook.com/groups/free.code.camp.lexington/)    
-[Lima](//www.facebook.com/groups/Free.Code.Camp.Lima/)    
-[Limassol](//www.facebook.com/groups/free.code.camp.limassol/)    
-[Lincoln, NE](//www.facebook.com/groups/free.code.camp.lincoln/)    
-[Lindsay](//www.facebook.com/groups/free.code.camp.lindsay/)    
-[Lisbon](//www.facebook.com/groups/free.code.camp.lisbon/)    
-[Little Rock](//www.facebook.com/groups/free.code.camp.little.rock/)    
-[Lodz](//www.facebook.com/groups/free.code.camp.lodz/)    
-[London, ON](//www.facebook.com/groups/free.code.camp.london.on/)    
-[London](//www.facebook.com/groups/free.code.camp.london/)    
-[Los Alamos](//www.facebook.com/groups/free.code.camp.los.alamos.nm/)    
-[Los Angeles](//www.facebook.com/groups/free.code.camp.los.angeles/)    
-[Louisville](//www.facebook.com/groups/free.code.camp.Louisville)    
-[Luanda](//www.facebook.com/groups/free.code.camp.luanda/)    
-[Lubbock](//www.facebook.com/groups/free.code.camp.lubbock/)    
-[Lviv](//www.facebook.com/groups/free.code.camp.lviv/)    
-[Lynchburg](//www.facebook.com/groups/free.code.camp.LYH/)    
-[Madison](//www.facebook.com/groups/free.code.camp.madison.wisconsin/)    
-[Madrid](//www.facebook.com/groups/free.code.camp.madrid/)    
-[Makati](//www.facebook.com/groups/free.code.camp.makati/)    
-[Male](//www.facebook.com/groups/freecodemv/)    
-[Managua](//www.facebook.com/groups/free.code.camp.managua/)    
-[Manchester, UK](//www.facebook.com/groups/free.code.camp.manchester/)    
-[Mangalore](//www.facebook.com/groups/free.code.camp.mangalore/)    
-[Manila](//www.facebook.com/groups/free.code.camp.manila/)    
-[Mansoura](https://www.facebook.com/groups/free.code.camp.mansoura/)    
-[Melbourne](//www.facebook.com/groups/free.code.camp.Melbourne/)    
-[Mexico City](//www.facebook.com/groups/free.code.camp.mexico.df/)    
-[Miami](//www.facebook.com/groups/free.code.camp.miami/)    
-[Mianwali](//www.facebook.com/groups/free.code.camp.mianwali/)    
-[Milan](//www.facebook.com/groups/free.code.camp.milan/)    
-[Milwaukee](//www.facebook.com/groups/free.code.camp.milwaukee/)    
-[Minneapolis](//www.facebook.com/groups/free.code.camp.minneapolis/)    
-[Minsk](//www.facebook.com/groups/free.code.camp.Minsk/)    
-[Mississippi Gulf Coast](//www.facebook.com/groups/free.code.camp.msgulfcoast/)    
-[Missoula](//www.facebook.com/groups/free.code.camp.missoula/)    
-[Modesto](//www.facebook.com/groups/free.code.camp.modesto/)    
-[Monterrey](//www.facebook.com/groups/free.code.camp.monterrey/)    
-[Montevideo](//www.facebook.com/groups/free.code.camp.montevideo/)    
-[Montgomery](//www.facebook.com/groups/free.code.camp.montgomery.alabama/)    
-[Montreal](//www.facebook.com/groups/free.code.camp.montreal/)    
-[Moosejaw](//www.facebook.com/groups/free.code.camp.moosejaw)    
-[Morgan City](//www.facebook.com/groups/free.code.camp.morgan.ciry.la/)    
-[Morgantown](https://www.facebook.com/groups/free.code.camp.morgantown/)    
-[Moscow](//www.facebook.com/groups/free.code.camp.moscow/)    
-[Moss Point](//www.facebook.com/groups/free.code.camp.moss.point.mississippi/)    
-[Multan](//www.facebook.com/groups/free.code.camp.multan)    
-[Mumbai](//www.facebook.com/groups/frre.code.camp.mumbai/)    
-[Munich](//www.facebook.com/groups/free.code.camp.munich/)    
-[Munster](//www.facebook.com/groups/free.code.camp.cork.munster/)    
-[Muskegon](https://www.facebook.com/groups/free.code.camp.muskegon/)    
-[Mykolaiv](https://www.facebook.com/groups/free.code.camp.mykolaiv/)    
-[Mysore](//www.facebook.com/groups/free.code.camp.mysore/)    
-[Nairobi](//www.facebook.com/groups/free.code.camp.nairobi/)    
-[Nantes](//www.facebook.com/groups/free.code.camp.nantes/)    
-[Napa](//www.facebook.com/groups/free.code.camp.napa/)    
-[Napoli](//www.facebook.com/groups/free.code.camp.napoli)    
-[Nashik](//www.facebook.com/groups/free.code.camp.your.nashik/)    
-[Nashville](//www.facebook.com/groups/free.code.camp.nashville/)    
-[Natal](https://www.facebook.com/groups/free.code.camp.natal)    
-[Nazareth](//www.facebook.com/groups/Free.Code.Camp.Nazareth.Israel/)    
-[New Brunswick](//www.facebook.com/groups/free.code.camp.new.brunswick.new.jersey/)    
-[New Haven](//www.facebook.com/groups/free.code.camp.new.haven/)    
-[New Orleans](//www.facebook.com/groups/free.code.camp.neworleans/)    
-[New Paltz](//www.facebook.com/groups/free.code.camp.new.paltz/)    
-[New Westminster](//www.facebook.com/groups/free.code.camp.new.westminster/)    
-[New York City](//www.facebook.com/groups/free.code.camp.new.york.city/)    
-[Nicosia](//www.facebook.com/groups/free.code.camp.nicosia/)    
-[Noida](//www.facebook.com/groups/free.code.camp.noida/)    
-[Norfolk](//www.facebook.com/groups/free.code.camp.norfolk)    
-[Normal](//www.facebook.com/groups/free.code.camp.bloomington.normal/)    
-[North Mississippi](//www.facebook.com/groups/free.code.camp.north.mississippi/)    
-[North Platte](//www.facebook.com/groups/free.code.camp.north.platte/)    
-[Nusajaya](//facebook.com/groups/free.code.camp.nusajaya.malaysia//)    
-[Oakland](//www.facebook.com/groups/free.code.camp.berkeley/)    
-[Oklahoma City](//www.facebook.com/groups/free.code.camp.oklahoma.city/)    
-[Olympia](//www.facebook.com/groups/free.code.camp.olympia/)    
-[Omaha](//www.facebook.com/groups/free.code.camp.omaha/)    
-[Omsk](//www.facebook.com/groups/free.code.camp.omsk/)    
-[Oradell](https://www.facebook.com/groups/free.code.camp.oradell/)    
-[Orange County](//www.facebook.com/groups/free.code.camp.orange.county/)    
-[Orenburg](//www.facebook.com/groups/free.code.camp.orenburg/)    
-[Orlando](//www.facebook.com/groups/free.code.camp.orlando/)    
-[Ottawa](//www.facebook.com/groups/free.code.camp.ottawa/)    
-[Owatonna](//www.facebook.com/groups/free.code.camp.owatonna/)    
-[Panama City](//www.facebook.com/groups/free.code.camp.panama.city)    
-[Parana](//www.facebook.com/groups/free.code.camp.your.apucarana.parana/)    
-[Paris](//www.facebook.com/groups/free.code.camp.paris/)    
-[Pasadena](//www.facebook.com/groups/free.code.camp.pasadena.ca/)    
-[Pasto](//www.facebook.com/groups/free.code.camp.pasto/)    
-[Penang](//www.facebook.com/groups/free.code.camp.penang/)    
-[Perlis](//www.facebook.com/groups/free.code.camp.perlis.malaysia)    
-[Perth](//www.facebook.com/groups/free.code.camp.perth/)    
-[Perugia](//www.facebook.com/groups/free.code.camp.perugia.it/)    
-[Philadelphia](//www.facebook.com/groups/free.code.camp.philadelphia/)    
-[Phnom Penh](//www.facebook.com/groups/free.code.camp.phnompenh.cambodia/)    
-[Phoenix](//www.facebook.com/groups/free.code.camp.tempe.phoenix.scottsdale/)    
-[Pittsburgh](//www.facebook.com/groups/free.code.camp.pittsburgh.pa/)    
-[Poitiers](//www.facebook.com/groups/free.code.camp.poitiers/)    
-[Pondicherry](//www.facebook.com/groups/free.code.camp.pondicherry/)    
-[Port Harcourt](//www.facebook.com/groups/free.code.camp.port.harcourt/)    
-[Portland](//www.facebook.com/groups/free.code.camp.portland/)    
-[Porto Alegre](//www.facebook.com/groups/free.code.camp.porto.alegre.rs/)    
-[Porto](//www.facebook.com/groups/free.code.camp.porto/)    
-[Prague](//www.facebook.com/groups/free.code.camp.prague/)    
-[Prescott](//www.facebook.com/groups/free.code.camp.northern.arizona/)    
-[Pristina](//www.facebook.com/groups/free.code.camp.pristina/)    
-[Providence](//www.facebook.com/groups/free.code.camp.providence/)    
-[Provo](//www.facebook.com/groups/free.code.camp.provo/)    
-[Puebla](//www.facebook.com/groups/free.code.camp.pueblaMX/)    
-[Pueblo](//www.facebook.com/groups/free.code.camp.pueblo/)    
-[Pune](//www.facebook.com/groups/free.code.camp.pune/)    
-[Quibdo](//www.facebook.com/groups/free.code.camp.quibdo/)    
-[Raleigh](//www.facebook.com/groups/free.code.camp.raleigh/)    
-[Ranchi](//www.facebook.com/groups/free.code.camp.ranchi/)    
-[Reading](//www.facebook.com/groups/free.code.camp.reading/)    
-[Recife](//www.facebook.com/groups/free.code.camp.recife)    
-[Redmond, OR](//www.facebook.com/groups/free.code.camp.remond.oregon/)    
-[Reno](//www.facebook.com/groups/free.code.camp.reno/)    
-[Reykjavik](//www.facebook.com/groups/free.code.camp.reykjavik/)    
-[Rice Lake](//www.facebook.com/groups/free.code.camp.rice.lake.wi/)    
-[Richmond](//www.facebook.com/groups/free.code.camp.richmond/)    
-[Riga](//www.facebook.com/groups/free.code.camp.riga/)    
-[Rio de Janeiro](//www.facebook.com/groups/free.code.camp.rio.de.janeiro/)    
-[Riverside, CA](//www.facebook.com/groups/free.code.camp.riverside.ca/)    
-[Riyadh](//www.facebook.com/groups/free.code.camp.Riyadh/)
-[Rochester, NY](//www.facebook.com/groups/free.code.camp.Rochester.New.York/)    
-[Roma](//www.facebook.com/groups/free.code.camp.roma/)    
-[Rotterdam](//www.facebook.com/groups/free.code.camp.rotterdam/)    
-[Sacramento](//www.facebook.com/groups/free.code.camp.sacramento/)  
-[Sahiwal](//www.facebook.com/groups/1505677729748974/)    
-[Saint George](//www.facebook.com/groups/free.code.camp.saint.george/)    
-[Saint Louis](//www.facebook.com/groups/free.code.camp.saint.louis/)    
-[Saint Paul](//www.facebook.com/groups/free.code.camp.saint.paul.mn/)    
-[Saint Petersburg](https://www.facebook.com/groups/free.code.camp.saint.petersburg/)    
-[Salamanca](//www.facebook.com/groups/free.code.camp.salamanca/)    
-[Salisbury, MD](//www.facebook.com/groups/free.code.camp.salisbury.maryland/)    
-[Salt Lake City](//www.facebook.com/groups/free.code.camp.salt.lake.city/)    
-[Salvador](//www.facebook.com/groups/free.code.camp.salvador/)    
-[San Antonio](//www.facebook.com/groups/free.code.camp.san.antonio)    
-[San Bernardino](//www.facebook.com/groups/free.code.camp.san.bernardino/)    
-[San Diego](//www.facebook.com/groups/free.code.camp.san.diego/)    
-[San Francisco](//www.facebook.com/groups/free.code.camp.san.francisco)    
-[San Jose, Costa Rica](//www.facebook.com/groups/free.code.camp.san.jose.costa.rica/)    
-[San Jose](//www.facebook.com/groups/free.code.camp.san.jose)    
-[San Juan](//www.facebook.com/groups/free.code.camp.sanjuan.pr/)    
-[Santa Barbara](//www.facebook.com/groups/free.code.camp.santa.barbara/)    
-[Santa Clarita](//www.facebook.com/groups/free.code.camp.santa.clarita/)    
-[Santa Cruz](//www.facebook.com/groups/free.code.camp.SC/)    
-[Santa Luis Obispo](//www.facebook.com/groups/free.code.camp.SLO/)    
-[Santiago](//www.facebook.com/groups/free.code.camp.santiago/)    
-[Santo Domingo](//www.facebook.com/groups/free.code.camp.dr/)    
-[Sao Paulo](//www.facebook.com/groups/free.code.camp.sao.paulo/)    
-[Sarajevo](//www.facebook.com/groups/free.code.camp.sarajevo)    
-[Sarasota](https://www.facebook.com/groups/free.code.camp.sarasota.florida/)    
-[Sasebo](//www.facebook.com/groups/free.code.camp.sasebo/)    
-[Savannah](//www.facebook.com/groups/free.code.camp.savannah/)    
-[Scottsdale](//www.facebook.com/groups/free.code.camp.tempe.phoenix.scottsdale/)    
-[Seattle](//www.facebook.com/groups/free.code.camp.seattle/)    
-[Sedona](//www.facebook.com/groups/free.code.camp.northern.arizona/)    
-[Seoul](//www.facebook.com/groups/free.code.camp.seoul/)    
-[Shanghai](//www.facebook.com/groups/free.code.camp.Shanghai/)    
-[Sheffield](//www.facebook.com/groups/free.code.camp.sheffield/)    
-[Shenzhen](//www.facebook.com/groups/free.code.camp.shenzhen/)    
-[Sidoarjo](//www.facebook.com/groups/free.code.camp.sidoarjo/)    
-[Sierra Vista](//www.facebook.com/groups/free.code.camp.sierra.vista/)    
-[Silverspring](//www.facebook.com/groups/free.code.camp.silverspring/)    
-[Singapore](//www.facebook.com/groups/free.code.camp.singapore/)    
-[Skopje](//www.facebook.com/groups/free.code.camp.skopje/)    
-[Sofia](//www.facebook.com/groups/free.code.camp.sofia/)
-[Solo](//www.facebook.com/groups/free.code.camp.solo/)    
-[Sopot](//www.facebook.com/groups/free.code.camp.trojmiasto/)    
-[Sorocaba](https://www.facebook.com/groups/free.code.camp.sorocaba.sp/)    
-[South Bend](//www.facebook.com/groups/free.code.camp.south.bend/)    
-[Spartanburg](//www.facebook.com/groups/free.code.camp.spartanburg/)    
-[Spokane](//www.facebook.com/groups/free.code.camp.spokane/)    
-[Springfield, MO](//www.facebook.com/groups/free.code.camp.springfield.missouri/)    
-[Srinagar](//www.facebook.com/groups/free.code.camp.srinagar/)    
-[St Cloud](//www.facebook.com/groups/free.code.camp.stcloud/)    
-[Stockholm](//www.facebook.com/groups/free.code.camp.stockholm.sweden/)    
-[Stroke-on-Trent](//www.facebook.com/groups/free.code.camp.stoke.on.trent/)    
-[Struga](//www.facebook.com/groups/free.code.camp.struga/)    
-[Stuttgart](//www.facebook.com/groups/free.code.camp.stuttgart/)    
-[Subotica](//www.facebook.com/groups/free.code.camp.subotica/)    
-[Surabaya](//www.facebook.com/groups/free.code.camp.surabaya/)    
-[Surigao](//www.facebook.com/groups/free.code.camp.surigao/)    
-[Surrey](//www.facebook.com/groups/free.code.camp.surrey/)    
-[Sydney, Nova Scotia](//www.facebook.com/groups/free.code.camp.sydney.ns/)    
-[Sydney](//www.facebook.com/groups/free.code.camp.sydney.au/)    
-[Szczecin](//www.facebook.com/groups/free.code.camp.szczecin/)    
-[Taipei](//www.facebook.com/groups/free.code.camp.taipei/)    
-[Tallahassee](//www.facebook.com/groups/free.code.camp.tallahassee.florida/)    
-[Tallinn](//www.facebook.com/groups/free.code.camp.tallinn/)    
-[Tampa Bay](//www.facebook.com/groups/free.code.camp.tampa/)    
-[Targu Mures](https://www.facebook.com/groups/free.code.camp.targu.mures/)    
-[Tashkent](//www.facebook.com/groups/free.code.camp.tashkent/)    
-[Tegucigalpa](//www.facebook.com/groups/free.code.camp.Honduras/)    
-[Tehran](//www.facebook.com/groups/free.code.camp.tehran/)    
-[Tel Aviv](//www.facebook.com/groups/free.code.camp.Tel.Aviv/)    
-[Temecula](//www.facebook.com/groups/free.code.camp.temecula/)    
-[Tempe](//www.facebook.com/groups/free.code.camp.tempe.phoenix.scottsdale/)    
-[Thessaloniki](//www.facebook.com/groups/free.code.camp.thessaloniki/)    
-[Ticino](//www.facebook.com/groups/free.code.camp.ticino/)    
-[Tijuana](//www.facebook.com/groups/free.code.camp.tijuana/)    
-[Timisoara](//www.facebook.com/groups/free.code.camp.timisoara/)    
-[Tirana](//www.facebook.com/groups/free.code.camp.tirana/)    
-[Tiraspol](https://www.facebook.com/groups/free.code.camp.tiraspol/)    
-[Tokyo](//www.facebook.com/groups/free.code.camp.tokyo/)    
-[Tom's River](//www.facebook.com/groups/free.code.camp.toms.river/)    
-[Torino](//www.facebook.com/groups/free.code.camp.torino/)    
-[Toronto](//www.facebook.com/groups/free.code.camp.to/)    
-[Tri-Cities Washington](//www.facebook.com/groups/free.code.camp.tricitieswa/)    
-[Trivandrum](//www.facebook.com/groups/freecodecamp.trivandrum/)    
-[Trondheim](//www.facebook.com/groups/free.code.camp.trondheim/)    
-[Tucson](//www.facebook.com/groups/free.code.camp.tucson/)    
-[Tulsa](//www.facebook.com/groups/free.code.camp.tulsa/)    
-[Tunis](//www.facebook.com/groups/free.code.camp.tunisia/)
-[Tupelo MS](https://www.facebook.com/groups/148780962143254/)    
-[Ulaanbaatar](https://www.facebook.com/groups/free.code.camp.your.ulaanbaatar/)    
-[University Center](//www.facebook.com/groups/free.code.camp.university.center/)    
-[Valdosta](//www.facebook.com/groups/free.code.camp.valdosta/)    
-[Valencia](//www.facebook.com/groups/free.code.camp.vlc/)    
-[Vancouver](//www.facebook.com/groups/free.code.camp.vancouver.bc.canada/)    
-[Verde Valley](//www.facebook.com/groups/free.code.camp.northern.arizona/)    
-[Victoria](//www.facebook.com/groups/free.code.camp.victoria.bc/)    
-[Vilnius](//www.facebook.com/groups/free.code.camp.vilnius.lt/)    
-[Virginia Beach](//www.facebook.com/groups/free.code.camp.virginia.beach/)    
-[Vitória](//www.facebook.com/groups/free.code.camp.vitoria.e.regiao.metropolitana.es/)    
-[Vladivostok](//www.facebook.com/groups/free.code.camp.vladivostok/)    
-[Warrington](//www.facebook.com/groups/free.code.camp.warrington/)    
-[Warsaw](//www.facebook.com/groups/free.code.camp.warsaw/)    
-[Washington, DC](//www.facebook.com/groups/free.code.camp.washington.dc/)    
-[Waterford](//www.facebook.com/groups/free.code.camp.waterford/)    
-[Wichita](//www.facebook.com/groups/free.code.camp.wichita/)    
-[Wilmington, NC](https://www.facebook.com/groups/free.code.camp.wilmington.nc/)    
-[Winnipeg](//www.facebook.com/groups/free.code.camp.winnipeg/)    
-[Wuerzburg](//www.facebook.com/groups/free.code.camp.wuerzburg/)    
-[Yangon](//www.facebook.com/groups/free.code.camp.myanmar)    
-[Yaounde](//www.facebook.com/groups/free.code.camp.yaounde)    
-[Yaroslavl](//www.facebook.com/groups/free.code.camp.yaroslavl/)    
-[Yekaterinburg](//www.facebook.com/groups/free.code.camp.yekaterinburg)    
-[Yerevan](//www.facebook.com/groups/free.code.camp.armenia/)    
-[Zacatecas](//www.facebook.com/groups/free.code.camp.zacatecas/)    
-[Zacatecas](https://www.facebook.com/groups/free.code.camp.zacatecas/)    
-[Zagreb](//www.facebook.com/groups/free.code.camp.zagreb/)    
-[Zhytomyr](https://www.facebook.com/groups/free.code.camp.zhytomyr/)    
-[Znojmo](//www.facebook.com/groups/free.code.camp.znojmo/)    
+##Hundreds of cities around the world have Free Code Camp Facebook groups, called Campsites.
+
+Campers at these Campsites share links, hang out together, and organize local Coffee-n-Code events.
+
+If your city isn't listed here, you should [[create a Campsite for your city|How-to-create-a-Campsite-for-your-city]].
+
+[Aarhus](//www.facebook.com/groups/FreeCodeCampAarhus)    
+[Abu Dhabi](//www.facebook.com/groups/free.code.camp.abu.dhabi/)    
+[Abuja](https://www.facebook.com/groups/abuja.free.code.camp/)    
+[Accra](//www.facebook.com/groups/free.code.camp.accra/)    
+[Addis Abeda](https://www.facebook.com/groups/free.code.camp.addis.abeba/)    
+[Adelaide](//www.facebook.com/groups/free.code.camp.adelaide/)    
+[Ahmedabad](//www.facebook.com/groups/free.code.camp.ahmedabad/)    
+[Aichi](//www.facebook.com/groups/free.code.camp.aichi/)    
+[Alameda](//www.facebook.com/groups/free.code.camp.berkeley/)    
+[Albany](//www.facebook.com/groups/free.code.camp.albany.ny/)    
+[Albuquerque](//www.facebook.com/groups/free.code.camp.albuquerque/)    
+[Algiers](//www.facebook.com/groups/free.code.camp.Algiers/)    
+[Allahabad](//www.facebook.com/groups/free.code.camp.allahabad/)    
+[Almeria](//www.facebook.com/groups/free.code.camp.almeria/)    
+[Americana](//www.facebook.com/groups/free.code.camp.americana/)    
+[Ames](//www.facebook.com/groups/free.code.camp.ames.iowa/)    
+[Amman](//www.facebook.com/groups/free.code.camp.amman/)    
+[Amsterdam](//www.facebook.com/groups/free.code.camp.amsterdam/)    
+[Anacortes](//www.facebook.com/groups/free.code.camp.anacortes/)    
+[Ankara](//www.facebook.com/groups/free.code.camp.ankara/)    
+[Ann Arbor](//www.facebook.com/groups/free.code.camp.ann.arbor/)    
+[Appleton](//www.facebook.com/groups/free.code.camp.appleton/)    
+[Apucarana](//www.facebook.com/groups/free.code.camp.your.apucarana.parana/)    
+[Aracaju](//www.facebook.com/groups/free.code.camp.aracaju/)    
+[Asheville](//www.facebook.com/groups/free.code.camp.asheville/)    
+[Astana](https://www.facebook.com/groups/free.code.camp.astana/)    
+[Asuncion](//www.facebook.com/groups/free.code.camp.asuncion/)    
+[Athens, Ohio](//www.facebook.com/groups/free.code.camp.athens.ohio/)    
+[Athens](//www.facebook.com/groups/free.code.camp.athens.greece/)    
+[Atlanta](//www.facebook.com/groups/free.code.camp.atlanta/)    
+[Auburn, ME]( //www.facebook.com/groups/free.code.camp.auburn.maine/)    
+[Auckland](//www.facebook.com/groups/awesome.code.camp/)    
+[Austin](//www.facebook.com/groups/free.code.camp.austin/)    
+[Bakersfield](//www.facebook.com/groups/free.code.camp.bakersfield.california/)    
+[Baku](//www.facebook.com/groups/free.code.camp.baku/)    
+[Bali](//www.facebook.com/groups/free.code.camp.bali/)    
+[Baltimore](//www.facebook.com/groups/free.code.camp.baltimore/)    
+[Bandung](//www.facebook.com/groups/free.code.camp.bandung/)    
+[Bangkok](//www.facebook.com/groups/free.code.camp.bangkok/)    
+[Banja Luka](//www.facebook.com/groups/free.code.camp.banja.luka/)
+[Barcelona](//www.facebook.com/groups/free.code.camp.barcelona/)    
+[Barranquilla](//www.facebook.com/groups/free.code.camp.barranquilla.co/)    
+[Barrie](//www.facebook.com/groups/free.code.camp.Barrie.Ontario/)    
+[Barrie](//www.facebook.com/groups/free.code.camp.Barrie.Ontario/)    
+[Batticaloa](//www.facebook.com/groups/free.code.camp.batticaloa/)    
+[Beijing](//www.facebook.com/groups/free.code.camp.beijing/)    
+[Beirut](//www.facebook.com/groups/free.code.camp.beirut/)    
+[Belem](//www.facebook.com/groups/free.code.camp.belem/)    
+[Belgrade](//www.facebook.com/groups/free.code.camp.belgrade/)    
+[Belize City](//www.facebook.com/groups/free.code.camp.belize.city/)    
+[Belize](//www.facebook.com/groups/free.code.camp.belize/)    
+[Bellevue](//www.facebook.com/groups/free.code.camp.bellevue/)    
+[Bellingham](//www.facebook.com/groups/free.code.camp.bellingham/)    
+[Belo Horizonte](//www.facebook.com/groups/free.code.camp.belo.horizonte/)    
+[Bengaluru](//www.facebook.com/groups/free.code.camp.bengaluru/)    
+[Berkeley](//www.facebook.com/groups/free.code.camp.berkeley/)    
+[Berlin](//www.facebook.com/groups/free.code.camp.berlin/)    
+[Bhaktapur](//www.facebook.com/groups/free.code.camp.bhaktapur/)    
+[Bhubaneswar](//www.facebook.com/groups/free.code.camp.bhubaneswar/)    
+[Bialystok](//www.facebook.com/groups/free.code.camp.bialystok/)
+[Big Rapids](//www.facebook.com/groups/free.code.camp.bigrapids/)
+[Bijeljina](//www.facebook.com/groups/free.code.camp.bijeljina/)    
+[Birmingham, Alabama](//www.facebook.com/groups/free.code.camp.oxford.al/)    
+[Birmingham](//www.facebook.com/groups/free.code.camp.birmingham.uk/)    
+[Bishkek](//www.facebook.com/groups/free.code.camp.bishkek/)    
+[Bismarck, ND](//www.facebook.com/groups/free.code.camp.bismarck.north.dakota/)    
+[Bloomington, IL](//www.facebook.com/groups/free.code.camp.bloomington.normal/)    
+[Bloomington, IN](//www.facebook.com/groups/free.code.camp.bloomington.in/)    
+[Bogota](//www.facebook.com/groups/free.code.camp.bogota/)    
+[Boise](//www.facebook.com/groups/free.code.camp.boise)    
+[Boston](//www.facebook.com/groups/free.code.camp.boston/)    
+[Boulder](//www.facebook.com/groups/free.code.camp.boulder/)    
+[Braga](//www.facebook.com/groups/free.code.camp.braga/)    
+[Brasilia](//www.facebook.com/groups/free.code.camp.brasilia/)    
+[Brasov](//www.facebook.com/groups/free.code.camp.brasov)    
+[Bratislava](//www.facebook.com/groups/free.code.camp.bratislava/)    
+[Brighton](//www.facebook.com/groups/free.code.camp.brighton/)    
+[Brisbane](//www.facebook.com/groups/free.code.camp.brisbane/)    
+[Brno](//www.facebook.com/groups/free.code.camp.brno/)    
+[Brooksville](https://www.facebook.com/groups/free.code.camp.brooksville.florida/)    
+[Brussels](//www.facebook.com/groups/free.code.camp.brussels/)    
+[Bryan College Station](//www.facebook.com/groups/free.code.camp.bryan.college.station/)    
+[Bucaramanga](//www.facebook.com/groups/free.code.camp.bucaramanga/)    
+[Bucharest](//www.facebook.com/groups/free.code.camp.bucharest/)    
+[Budapest](//www.facebook.com/groups/free.code.camp.budapest/)    
+[Buenos Aires](//www.facebook.com/groups/free.code.camp.buenos.aires/)    
+[Buffalo](//www.facebook.com/groups/free.code.camp.buffalo/)    
+[Bury St Edmunds](//www.facebook.com/groups/free.code.camp.Bury.St.Edmunds/)    
+[Busan](//www.facebook.com/groups/free.code.camp.busan/)    
+[Bushkill](https://www.facebook.com/groups/Free.Code.Camp.Bushkill.PA/)    
+[Butte, MN]( //www.facebook.com/groups/free.code.camp.butte.montana/)    
+[Buzau](https://www.facebook.com/groups/free.code.camp.buzau/)    
+[Bydgoszcz](//www.facebook.com/groups/free.code.camp.bydgoszcz/)    
+[Cagayandeoro City](https://www.facebook.com/groups/free.code.camp.cagayandeoro.city/)    
+[Cairo](//www.facebook.com/groups/free.code.camp.cairo/)    
+[Calabar](//www.facebook.com/groups/free.code.camp.calabar/)    
+[Calgary](//www.facebook.com/groups/free.code.camp.calgary/)    
+[Cali](//www.facebook.com/groups/free.code.camp.cali/)    
+[Cambridge, ON](https://www.facebook.com/groups/free.code.camp.Cambridge.ON.Canada/)    
+[Campinas](//www.facebook.com/groups/free.code.camp.campinas/)    
+[Canberra](//www.facebook.com/groups/free.code.camp.canberra/)    
+[Cape Cod](//www.facebook.com/groups/free.code.camp.cape.cod/)    
+[Cape Town](//www.facebook.com/groups/free.code.camp.cape.town/)    
+[Caracas](//www.facebook.com/groups/free.code.camp.caracas/)    
+[Cardiff](//www.facebook.com/groups/free.code.camp.cardiff/)    
+[Casablanca](//www.facebook.com/groups/free.code.camp.casablanca/)    
+[Catania](//www.facebook.com/groups/free.code.camp.catania/)    
+[Cebu](https://www.facebook.com/groups/free.code.camp.cebu/)    
+[Cedar Rapids](//www.facebook.com/groups/free.code.camp.cedar.rapids/)    
+[Central Mississippi](//www.facebook.com/groups/free.code.camp.central.mississippi/)  
+[Centralia, WA] (//www.facebook.com/groups/free.code.camp.olympia/)  
+[Champaign-Urbana](//www.facebook.com/groups/free.code.camp.champaign.urbana/)    
+[Charleston, WV](https://www.facebook.com/groups/free.code.camp.charleston.wv)    
+[Charlotte](//www.facebook.com/groups/free.code.camp.charlotte.nc/)    
+[Chattanooga](//www.facebook.com/groups/free.code.camp.chattanooga/)    
+[Chennai](//www.facebook.com/groups/free.code.camp.chennai/)    
+[Chernivtsi](//www.facebook.com/groups/free.code.camp.chernivtsi.chernivetska.oblast.u/)    
+[Chiang Mai](//www.facebook.com/groups/free.code.camp.chiang.mai/)    
+[Chicago](//www.facebook.com/groups/free.code.camp.chicago/)    
+[Chisinau](https://www.facebook.com/groups/free.code.camp.Chisinau/)    
+[Christchurch](//www.facebook.com/groups/free.code.camp.christchurch/)    
+[Cincinnati](//www.facebook.com/groups/free.code.camp.cincinnati/)    
+[Clarksville](//www.facebook.com/groups/free.code.camp.clarksville.TN/)    
+[Cleveland](//www.facebook.com/groups/free.code.camp.cleveland/)    
+[Cluj](//www.facebook.com/groups/free.code.camp.cluj)    
+[Coattage Grove](//www.facebook.com/groups/free.code.camp.cottagegrove/)    
+[Coatzacoalcos](//www.facebook.com/groups/free.code.camp.coatzacoalcos/)
+[Coimbatore](//www.facebook.com/groups/free.code.camp.coimbatore)    
+[Colombo](//www.facebook.com/groups/free.code.camp.colombo/)    
+[Colorado Springs](//www.facebook.com/groups/freecodecampcoloradosprings/)    
+[Columbus](//www.facebook.com/groups/free.code.camp.columbus/)    
+[Coventry](//www.facebook.com/groups/free.code.camp.coventry/)    
+[Cuenca](//www.facebook.com/groups/free.code.camp.cuenca/)    
+[Culiacan](//www.facebook.com/groups/free.code.camp.culiacan/)    
+[Curitiba](//www.facebook.com/groups/free.code.camp.curitiba/)    
+[Da Nang](//www.facebook.com/groups/free.code.camp.your.Da.Nang/)
+[Dallas](//www.facebook.com/groups/free.code.camp.dallas/)    
+[Delhi](//www.facebook.com/groups/free.code.camp.delhi/)    
+[Denver](//www.facebook.com/groups/free.code.camp.denver/)    
+[Derby](//www.facebook.com/groups/free.code.camp.derby/)    
+[Des Moines](//www.facebook.com/groups/free.code.camp.des.moines/)    
+[Detroit](//www.facebook.com/groups/free.code.camp.detroit/)    
+[Dhaka](//www.facebook.com/groups/free.code.camp.dhaka/)    
+[Dnipropetrovsk](//www.facebook.com/groups/free.code.camp.dnipropetrovsk)    
+[Doha](//www.facebook.com/groups/free.code.camp.doha/)    
+[Dubai](//www.facebook.com/groups/free.code.camp.dubai/)    
+[Dublin](//www.facebook.com/groups/free.code.camp.dublin/)    
+[Duluth](//www.facebook.com/groups/free.code.camp.duluth/)    
+[Durango](//www.facebook.com/groups/free.code.camp.durango/)    
+[Edinburgh](//www.facebook.com/groups/free.code.camp.edinburgh/)    
+[Edmonton](//www.facebook.com/groups/free.code.camp.edmonton/)    
+[El Paso](//www.facebook.com/groups/free.code.camp.el.paso)    
+[Eugene](//www.facebook.com/groups/free.code.camp.eugene/)
+[Evansville](//www.facebook.com/groups/free.code.camp.evansville.in/)    
+[Farmville](//www.facebook.com/groups/free.code.camp.farmville.va/)    
+[Fayetteville](//www.facebook.com/groups/free.code.camp.fayetteville.arkansas/)    
+[Ferizaj](//www.facebook.com/groups/free.code.camp.ferizaj/)    
+[Firenze](//www.facebook.com/groups/free.code.camp.firenze/)    
+[Flagstaff](//www.facebook.com/groups/free.code.camp.northern.arizona/)    
+[Florianopolis](//www.facebook.com/groups/free.code.camp.florianopolis/)    
+[Floyd, VA](//www.facebook.com/groups/free.code.camp.floyd.virginia/)    
+[Folsom](//www.facebook.com/groups/free.code.camp.folsom)    
+[Fort Collins](//www.facebook.com/groups/free.code.camp.fort.collins/)    
+[Fort Worth](https://www.facebook.com/groups/freecodecampfortworth/)    
+[Fortaleza](//www.facebook.com/groups/free.code.group.fortaleza/)    
+[Frankfort](//www.facebook.com/groups/free.code.camp.frankfort.kentucky/)    
+[Frankfurt](//www.facebook.com/groups/free.code.camp.frankfurt.main/)    
+[Frederick, MD](//www.facebook.com/groups/free.code.camp.frederick.md)    
+[Fredericksburg](//www.facebook.com/groups/free.code.camp.fredericksburg/)    
+[Freehold](//www.facebook.com/groups/free.code.camp.freehold/)    
+[Fremont](//www.facebook.com/groups/free.code.camp.fremont/)    
+[Fresno](//www.facebook.com/groups/free.code.camp.fresno/)    
+[Fuengirola](//www.facebook.com/groups/free.code.camp.fuengirola/)    
+[Gainesville, FL](//www.facebook.com/groups/free.code.camp.gainesville.fla/)    
+[Galveston](//www.facebook.com/groups/free.code.camp.galveston/)    
+[Gdańsk](//www.facebook.com/groups/free.code.camp.trojmiasto/)    
+[Gdynia](//www.facebook.com/groups/free.code.camp.trojmiasto)    
+[Geneva](//www.facebook.com/groups/free.code.camp.geneva/)    
+[Glendora](//www.facebook.com/groups/free.code.camp.Glendora.California/)    
+[Goiania](//www.facebook.com/groups/free.code.camp.goiania/)    
+[Granada](//www.facebook.com/groups/free.code.camp.granada/)    
+[Grand Rapids](//www.facebook.com/groups/free.code.camp.grand.rapids/)    
+[Greenville](//www.facebook.com/groups/free.code.camp.Greenville/)    
+[Guacara](//www.facebook.com/groups/free.code.camp.guacara/)    
+[Guadalajara](//www.facebook.com/groups/fcc.guadalajara)    
+[Guarapuava](//www.facebook.com/groups/free.code.camp.guarapuava/)    
+[Guatemala City](//www.facebook.com/groups/free.code.camp.guatemala/)    
+[Gujrat City](https://www.facebook.com/groups/free.code.camp.gujrat/)    
+[Guntur](//www.facebook.com/groups/free.code.camp.guntur/)    
+[Gurgaon](//www.facebook.com/groups/free.code.camp.gurgaon/)    
+[Göttingen](//www.facebook.com/groups/free.code.camp.goettingen/)    
+[Hagerstown](//www.facebook.com/groups/free.code.camp.hagerstown/)    
+[Haifa]( //www.facebook.com/groups/free.code.camp.Haifa/)    
+[Halifax](//www.facebook.com/groups/free.code.camp.halifax/)    
+[Hamburg](//www.facebook.com/groups/free.code.camp.hamburg/)    
+[Hampton Roads](//www.facebook.com/groups/free.code.camp.hamptonroads/)    
+[Hanoi](//www.facebook.com/groups/free.code.camp.hanoi/)    
+[Harare](//www.facebook.com/groups/free.code.camp.harare/)    
+[Harrisburg, PA](//www.facebook.com/groups/free.code.camp.harrisburg.pa/)    
+[Hartford](//www.facebook.com/groups/free.code.camp.hartford.connecticut/)    
+[Hazelton, BC](https://www.facebook.com/groups/free.code.camp.hazelton.britishcolumbia/)    
+[Hermosillo](//www.facebook.com/groups/free.code.camp.Hermosillo/)    
+[Hickory](//www.facebook.com/groups/free.code.camp.hickory.nc)    
+[Ho Chi Minh City](//www.facebook.com/groups/free.code.camp.hochiminhcity/)    
+[Hobart](//www.facebook.com/groups/free.code.camp.hobart/)    
+[Hong Kong](//www.facebook.com/groups/free.code.camp.hk/)    
+[Houston](//www.facebook.com/groups/free.code.camp.houston/)    
+[Hove](//www.facebook.com/groups/free.code.camp.hove)    
+[Huntsville](//www.facebook.com/groups/free.code.camp.huntsville/)    
+[Hyderabad](//www.facebook.com/groups/free.code.camp.hyderabad/)    
+[Iasi](//www.facebook.com/groups/free.code.camp.iasi.romania/)    
+[idaho Falls](//www.facebook.com/groups/free.code.camp.idaho.falls.idaho/)    
+[Indianapolis](//www.facebook.com/groups/free.code.camp.indianapolis.in/)    
+[Indore](https://www.facebook.com/groups/free.code.camp.Indore/)    
+[Ipswich](//www.facebook.com/groups/free.code.camp.ipswich.qld/)    
+[Irkutsk](//www.facebook.com/groups/free.code.camp.irkutsk/)    
+[Isfahan](//www.facebook.com/groups/free.code.camp.isfahan/)    
+[Islamabad](//www.facebook.com/groups/free.code.camp.islamabad/)    
+[Istanbul](//www.facebook.com/groups/free.code.camp.istanbul/)    
+[Ivano Frankivsk](//www.facebook.com/groups/free.code.camp.ivano.frankivsk/)    
+[Izmir](//www.facebook.com/groups/free.code.camp.izmir)    
+[Jacarei](//www.facebook.com/groups/free.code.camp.sao.paulo.jacarei/)    
+[Jackson, MS](//www.facebook.com/groups/free.code.camp.jackson.ms)    
+[Jacksonville](//www.facebook.com/groups/free.code.camp.jacksonville/)    
+[Jaffna](//www.facebook.com/groups/free.code.camp.jaffna/)    
+[Jaipur](//www.facebook.com/groups/free.code.camp.jaipur/)    
+[Jakarta](//www.facebook.com/groups/free.code.camp.jakarta/)    
+[Jamnagar](//www.facebook.com/groups/free.code.camp.jamnagar.guj.in/)    
+[Jerusalem](//www.facebook.com/groups/free.code.camp.jerusalem/)    
+[Joao Pessoa](//www.facebook.com/groups/free.code.camp.joao.pessoa/)    
+[Johannesburg](//www.facebook.com/groups/free.code.camp.johannesburg/)    
+[Johor](//facebook.com/groups/free.code.camp.nusajaya.malaysia/)    
+[Joinville](//www.facebook.com/groups/free.code.camp.joinville/)    
+[Juarezchi](//www.facebook.com/groups/free.code.camp.juarezchi/)    
+[Kaduna](//www.facebook.com/groups/free.code.camp.kaduna/)    
+[Kalamazoo](//www.facebook.com/groups/free.code.camp.kalamazoo/)    
+[Kampala](//www.facebook.com/groups/free.code.camp.kampala/)    
+[Kansas City](//www.facebook.com/groups/free.code.camp.kansascity/)    
+[Karachi](//www.facebook.com/groups/free.code.camp.karachi/)    
+[Kathmandu](//www.facebook.com/groups/free.code.camp.kathmandu/)    
+[Kemerovo](//www.facebook.com/groups/free.code.camp.kemerovo/)    
+[Kerch](//www.facebook.com/groups/free.code.camp.kerch/)    
+[Kiev](//www.facebook.com/groups/free.code.camp.kiev/)    
+[Killeen](//www.facebook.com/groups/free.code.camp.killeen.texas/)    
+[Kingston, Jamaica](//www.facebook.com/groups/free.code.camp.kingston.jamaica/)    
+[Kingston, ON](//www.facebook.com/groups/free.code.camp.kingston.ontario/)    
+[Kisumu](//www.facebook.com/groups/free.code.camp.Kisumu/)
+[Knoxville](//www.facebook.com/groups/free.code.camp.knoxville.tn/)    
+[Koblenz](//www.facebook.com/groups/free.code.camp.koblenz/)   
+[Koeln](//www.facebook.com/groups/free.code.camp.koeln/)    
+[Kolkata](//www.facebook.com/groups/free.code.camp.kolkata/)    
+[Kosice](//www.facebook.com/groups/free.code.camp.kosice/)    
+[Kosovo](//www.facebook.com/groups/free.code.camp.kosovo/)    
+[Kozhikode](//www.facebook.com/groups/free.code.camp.kozhikode/)    
+[Krasnodar](//www.facebook.com/groups/free.code.camp.krasnodar/)    
+[Kryvyi Rih](//www.facebook.com/groups/free.code.camp.kryvyi.rih/)    
+[Kuala Lumpur](//www.facebook.com/groups/free.code.camp.malaysia.kl/)    
+[Kulsary](https://www.facebook.com/groups/free.code.camp.kulsary/)    
+[La Crosse](//www.facebook.com/groups/free.code.camp.la.crosse)    
+[La Paz](//www.facebook.com/groups/free.code.camp.La.Paz/)    
+[Lae](//www.facebook.com/groups/free.code.camp.papua.new.guinea.lae/)    
+[Lagos](//www.facebook.com/groups/free.code.camp.lagos/)    
+[Lahore](//www.facebook.com/groups/free.code.camp.lahore/)    
+[Lakeland](//www.facebook.com/groups/Free.Code.Camp.Lakeland.Florida/)    
+[Las Cruces](//www.facebook.com/groups/free.code.camp.lc.nm/)    
+[Las Vegas](//www.facebook.com/groups/free.code.camp.las.vegas.nv/)    
+[Lawrence](//www.facebook.com/groups/free.code.camp.lawrence)    
+[Leeds](//www.facebook.com/groups/free.code.camp.leeds/)    
+[Leesburg](//www.facebook.com/groups/free.code.camp.leesburg/)    
+[Leesville](//www.facebook.com/groups/free.code.camp.leesville.la/)    
+[Lehi](//www.facebook.com/groups/free.code.camp.lehi/)    
+[Lexington](//www.facebook.com/groups/free.code.camp.lexington/)    
+[Lima](//www.facebook.com/groups/Free.Code.Camp.Lima/)    
+[Limassol](//www.facebook.com/groups/free.code.camp.limassol/)    
+[Lincoln, NE](//www.facebook.com/groups/free.code.camp.lincoln/)    
+[Lindsay](//www.facebook.com/groups/free.code.camp.lindsay/)    
+[Lisbon](//www.facebook.com/groups/free.code.camp.lisbon/)    
+[Little Rock](//www.facebook.com/groups/free.code.camp.little.rock/)    
+[Lodz](//www.facebook.com/groups/free.code.camp.lodz/)    
+[London, ON](//www.facebook.com/groups/free.code.camp.london.on/)    
+[London](//www.facebook.com/groups/free.code.camp.london/)    
+[Los Alamos](//www.facebook.com/groups/free.code.camp.los.alamos.nm/)    
+[Los Angeles](//www.facebook.com/groups/free.code.camp.los.angeles/)    
+[Louisville](//www.facebook.com/groups/free.code.camp.Louisville)    
+[Luanda](//www.facebook.com/groups/free.code.camp.luanda/)    
+[Lubbock](//www.facebook.com/groups/free.code.camp.lubbock/)    
+[Lviv](//www.facebook.com/groups/free.code.camp.lviv/)    
+[Lynchburg](//www.facebook.com/groups/free.code.camp.LYH/)    
+[Madison](//www.facebook.com/groups/free.code.camp.madison.wisconsin/)    
+[Madrid](//www.facebook.com/groups/free.code.camp.madrid/)    
+[Makati](//www.facebook.com/groups/free.code.camp.makati/)    
+[Male](//www.facebook.com/groups/freecodemv/)    
+[Managua](//www.facebook.com/groups/free.code.camp.managua/)    
+[Manchester, UK](//www.facebook.com/groups/free.code.camp.manchester/)    
+[Mangalore](//www.facebook.com/groups/free.code.camp.mangalore/)    
+[Manila](//www.facebook.com/groups/free.code.camp.manila/)    
+[Mansoura](https://www.facebook.com/groups/free.code.camp.mansoura/)    
+[Melbourne](//www.facebook.com/groups/free.code.camp.Melbourne/)    
+[Mexico City](//www.facebook.com/groups/free.code.camp.mexico.df/)    
+[Miami](//www.facebook.com/groups/free.code.camp.miami/)    
+[Mianwali](//www.facebook.com/groups/free.code.camp.mianwali/)    
+[Milan](//www.facebook.com/groups/free.code.camp.milan/)    
+[Milwaukee](//www.facebook.com/groups/free.code.camp.milwaukee/)    
+[Minneapolis](//www.facebook.com/groups/free.code.camp.minneapolis/)    
+[Minsk](//www.facebook.com/groups/free.code.camp.Minsk/)    
+[Mississippi Gulf Coast](//www.facebook.com/groups/free.code.camp.msgulfcoast/)    
+[Missoula](//www.facebook.com/groups/free.code.camp.missoula/)    
+[Modesto](//www.facebook.com/groups/free.code.camp.modesto/)    
+[Monterrey](//www.facebook.com/groups/free.code.camp.monterrey/)    
+[Montevideo](//www.facebook.com/groups/free.code.camp.montevideo/)    
+[Montgomery](//www.facebook.com/groups/free.code.camp.montgomery.alabama/)    
+[Montreal](//www.facebook.com/groups/free.code.camp.montreal/)    
+[Moosejaw](//www.facebook.com/groups/free.code.camp.moosejaw)    
+[Morgan City](//www.facebook.com/groups/free.code.camp.morgan.ciry.la/)    
+[Morgantown](https://www.facebook.com/groups/free.code.camp.morgantown/)    
+[Moscow](//www.facebook.com/groups/free.code.camp.moscow/)    
+[Moss Point](//www.facebook.com/groups/free.code.camp.moss.point.mississippi/)    
+[Multan](//www.facebook.com/groups/free.code.camp.multan)    
+[Mumbai](//www.facebook.com/groups/frre.code.camp.mumbai/)    
+[Munich](//www.facebook.com/groups/free.code.camp.munich/)    
+[Munster](//www.facebook.com/groups/free.code.camp.cork.munster/)    
+[Muskegon](https://www.facebook.com/groups/free.code.camp.muskegon/)    
+[Mykolaiv](https://www.facebook.com/groups/free.code.camp.mykolaiv/)    
+[Mysore](//www.facebook.com/groups/free.code.camp.mysore/)    
+[Nairobi](//www.facebook.com/groups/free.code.camp.nairobi/)    
+[Nantes](//www.facebook.com/groups/free.code.camp.nantes/)    
+[Napa](//www.facebook.com/groups/free.code.camp.napa/)    
+[Napoli](//www.facebook.com/groups/free.code.camp.napoli)    
+[Nashik](//www.facebook.com/groups/free.code.camp.your.nashik/)    
+[Nashville](//www.facebook.com/groups/free.code.camp.nashville/)    
+[Natal](https://www.facebook.com/groups/free.code.camp.natal)    
+[Nazareth](//www.facebook.com/groups/Free.Code.Camp.Nazareth.Israel/)    
+[New Brunswick](//www.facebook.com/groups/free.code.camp.new.brunswick.new.jersey/)    
+[New Haven](//www.facebook.com/groups/free.code.camp.new.haven/)    
+[New Orleans](//www.facebook.com/groups/free.code.camp.neworleans/)    
+[New Paltz](//www.facebook.com/groups/free.code.camp.new.paltz/)    
+[New Westminster](//www.facebook.com/groups/free.code.camp.new.westminster/)    
+[New York City](//www.facebook.com/groups/free.code.camp.new.york.city/)    
+[Nicosia](//www.facebook.com/groups/free.code.camp.nicosia/)    
+[Noida](//www.facebook.com/groups/free.code.camp.noida/)    
+[Norfolk](//www.facebook.com/groups/free.code.camp.norfolk)    
+[Normal](//www.facebook.com/groups/free.code.camp.bloomington.normal/)    
+[North Mississippi](//www.facebook.com/groups/free.code.camp.north.mississippi/)    
+[North Platte](//www.facebook.com/groups/free.code.camp.north.platte/)    
+[Nusajaya](//facebook.com/groups/free.code.camp.nusajaya.malaysia//)    
+[Oakland](//www.facebook.com/groups/free.code.camp.berkeley/)    
+[Oklahoma City](//www.facebook.com/groups/free.code.camp.oklahoma.city/)    
+[Olympia](//www.facebook.com/groups/free.code.camp.olympia/)    
+[Omaha](//www.facebook.com/groups/free.code.camp.omaha/)    
+[Omsk](//www.facebook.com/groups/free.code.camp.omsk/)    
+[Oradell](https://www.facebook.com/groups/free.code.camp.oradell/)    
+[Orange County](//www.facebook.com/groups/free.code.camp.orange.county/)    
+[Orenburg](//www.facebook.com/groups/free.code.camp.orenburg/)    
+[Orlando](//www.facebook.com/groups/free.code.camp.orlando/)    
+[Ottawa](//www.facebook.com/groups/free.code.camp.ottawa/)    
+[Owatonna](//www.facebook.com/groups/free.code.camp.owatonna/)    
+[Panama City](//www.facebook.com/groups/free.code.camp.panama.city)    
+[Parana](//www.facebook.com/groups/free.code.camp.your.apucarana.parana/)    
+[Paris](//www.facebook.com/groups/free.code.camp.paris/)    
+[Pasadena](//www.facebook.com/groups/free.code.camp.pasadena.ca/)    
+[Pasto](//www.facebook.com/groups/free.code.camp.pasto/)    
+[Penang](//www.facebook.com/groups/free.code.camp.penang/)    
+[Perlis](//www.facebook.com/groups/free.code.camp.perlis.malaysia)    
+[Perth](//www.facebook.com/groups/free.code.camp.perth/)    
+[Perugia](//www.facebook.com/groups/free.code.camp.perugia.it/)    
+[Philadelphia](//www.facebook.com/groups/free.code.camp.philadelphia/)    
+[Phnom Penh](//www.facebook.com/groups/free.code.camp.phnompenh.cambodia/)    
+[Phoenix](//www.facebook.com/groups/free.code.camp.tempe.phoenix.scottsdale/)    
+[Pittsburgh](//www.facebook.com/groups/free.code.camp.pittsburgh.pa/)    
+[Poitiers](//www.facebook.com/groups/free.code.camp.poitiers/)    
+[Pondicherry](//www.facebook.com/groups/free.code.camp.pondicherry/)    
+[Port Harcourt](//www.facebook.com/groups/free.code.camp.port.harcourt/)    
+[Portland](//www.facebook.com/groups/free.code.camp.portland/)    
+[Porto Alegre](//www.facebook.com/groups/free.code.camp.porto.alegre.rs/)    
+[Porto](//www.facebook.com/groups/free.code.camp.porto/)    
+[Prague](//www.facebook.com/groups/free.code.camp.prague/)    
+[Prescott](//www.facebook.com/groups/free.code.camp.northern.arizona/)    
+[Pristina](//www.facebook.com/groups/free.code.camp.pristina/)    
+[Providence](//www.facebook.com/groups/free.code.camp.providence/)    
+[Provo](//www.facebook.com/groups/free.code.camp.provo/)    
+[Puebla](//www.facebook.com/groups/free.code.camp.pueblaMX/)    
+[Pueblo](//www.facebook.com/groups/free.code.camp.pueblo/)    
+[Pune](//www.facebook.com/groups/free.code.camp.pune/)    
+[Quibdo](//www.facebook.com/groups/free.code.camp.quibdo/)    
+[Raleigh](//www.facebook.com/groups/free.code.camp.raleigh/)    
+[Ranchi](//www.facebook.com/groups/free.code.camp.ranchi/)    
+[Reading](//www.facebook.com/groups/free.code.camp.reading/)    
+[Recife](//www.facebook.com/groups/free.code.camp.recife)    
+[Redmond, OR](//www.facebook.com/groups/free.code.camp.remond.oregon/)    
+[Reno](//www.facebook.com/groups/free.code.camp.reno/)    
+[Reykjavik](//www.facebook.com/groups/free.code.camp.reykjavik/)    
+[Rice Lake](//www.facebook.com/groups/free.code.camp.rice.lake.wi/)    
+[Richmond](//www.facebook.com/groups/free.code.camp.richmond/)    
+[Riga](//www.facebook.com/groups/free.code.camp.riga/)    
+[Rio de Janeiro](//www.facebook.com/groups/free.code.camp.rio.de.janeiro/)    
+[Riverside, CA](//www.facebook.com/groups/free.code.camp.riverside.ca/)    
+[Riyadh](//www.facebook.com/groups/free.code.camp.Riyadh/)
+[Rochester, NY](//www.facebook.com/groups/free.code.camp.Rochester.New.York/)    
+[Roma](//www.facebook.com/groups/free.code.camp.roma/)    
+[Rotterdam](//www.facebook.com/groups/free.code.camp.rotterdam/)    
+[Sacramento](//www.facebook.com/groups/free.code.camp.sacramento/)  
+[Sahiwal](//www.facebook.com/groups/1505677729748974/)    
+[Saint George](//www.facebook.com/groups/free.code.camp.saint.george/)    
+[Saint Louis](//www.facebook.com/groups/free.code.camp.saint.louis/)    
+[Saint Paul](//www.facebook.com/groups/free.code.camp.saint.paul.mn/)    
+[Saint Petersburg](https://www.facebook.com/groups/free.code.camp.saint.petersburg/)    
+[Salamanca](//www.facebook.com/groups/free.code.camp.salamanca/)    
+[Salisbury, MD](//www.facebook.com/groups/free.code.camp.salisbury.maryland/)    
+[Salt Lake City](//www.facebook.com/groups/free.code.camp.salt.lake.city/)    
+[Salvador](//www.facebook.com/groups/free.code.camp.salvador/)    
+[San Antonio](//www.facebook.com/groups/free.code.camp.san.antonio)    
+[San Bernardino](//www.facebook.com/groups/free.code.camp.san.bernardino/)    
+[San Diego](//www.facebook.com/groups/free.code.camp.san.diego/)    
+[San Francisco](//www.facebook.com/groups/free.code.camp.san.francisco)    
+[San Jose, Costa Rica](//www.facebook.com/groups/free.code.camp.san.jose.costa.rica/)    
+[San Jose](//www.facebook.com/groups/free.code.camp.san.jose)    
+[San Juan](//www.facebook.com/groups/free.code.camp.sanjuan.pr/)    
+[Santa Barbara](//www.facebook.com/groups/free.code.camp.santa.barbara/)    
+[Santa Clarita](//www.facebook.com/groups/free.code.camp.santa.clarita/)    
+[Santa Cruz](//www.facebook.com/groups/free.code.camp.SC/)    
+[Santa Luis Obispo](//www.facebook.com/groups/free.code.camp.SLO/)    
+[Santiago](//www.facebook.com/groups/free.code.camp.santiago/)    
+[Santo Domingo](//www.facebook.com/groups/free.code.camp.dr/)    
+[Sao Paulo](//www.facebook.com/groups/free.code.camp.sao.paulo/)    
+[Sarajevo](//www.facebook.com/groups/free.code.camp.sarajevo)    
+[Sarasota](https://www.facebook.com/groups/free.code.camp.sarasota.florida/)    
+[Sasebo](//www.facebook.com/groups/free.code.camp.sasebo/)    
+[Savannah](//www.facebook.com/groups/free.code.camp.savannah/)    
+[Scottsdale](//www.facebook.com/groups/free.code.camp.tempe.phoenix.scottsdale/)    
+[Seattle](//www.facebook.com/groups/free.code.camp.seattle/)    
+[Sedona](//www.facebook.com/groups/free.code.camp.northern.arizona/)    
+[Seoul](//www.facebook.com/groups/free.code.camp.seoul/)    
+[Shanghai](//www.facebook.com/groups/free.code.camp.Shanghai/)    
+[Sheffield](//www.facebook.com/groups/free.code.camp.sheffield/)    
+[Shenzhen](//www.facebook.com/groups/free.code.camp.shenzhen/)    
+[Sidoarjo](//www.facebook.com/groups/free.code.camp.sidoarjo/)    
+[Sierra Vista](//www.facebook.com/groups/free.code.camp.sierra.vista/)    
+[Silverspring](//www.facebook.com/groups/free.code.camp.silverspring/)    
+[Singapore](//www.facebook.com/groups/free.code.camp.singapore/)    
+[Skopje](//www.facebook.com/groups/free.code.camp.skopje/)    
+[Sofia](//www.facebook.com/groups/free.code.camp.sofia/)
+[Solo](//www.facebook.com/groups/free.code.camp.solo/)    
+[Sopot](//www.facebook.com/groups/free.code.camp.trojmiasto/)    
+[Sorocaba](https://www.facebook.com/groups/free.code.camp.sorocaba.sp/)    
+[South Bend](//www.facebook.com/groups/free.code.camp.south.bend/)    
+[Spartanburg](//www.facebook.com/groups/free.code.camp.spartanburg/)    
+[Spokane](//www.facebook.com/groups/free.code.camp.spokane/)    
+[Springfield, MO](//www.facebook.com/groups/free.code.camp.springfield.missouri/)    
+[Srinagar](//www.facebook.com/groups/free.code.camp.srinagar/)    
+[St Cloud](//www.facebook.com/groups/free.code.camp.stcloud/)    
+[Stockholm](//www.facebook.com/groups/free.code.camp.stockholm.sweden/)    
+[Stroke-on-Trent](//www.facebook.com/groups/free.code.camp.stoke.on.trent/)    
+[Struga](//www.facebook.com/groups/free.code.camp.struga/)    
+[Stuttgart](//www.facebook.com/groups/free.code.camp.stuttgart/)    
+[Subotica](//www.facebook.com/groups/free.code.camp.subotica/)    
+[Surabaya](//www.facebook.com/groups/free.code.camp.surabaya/)    
+[Surigao](//www.facebook.com/groups/free.code.camp.surigao/)    
+[Surrey](//www.facebook.com/groups/free.code.camp.surrey/)    
+[Sydney, Nova Scotia](//www.facebook.com/groups/free.code.camp.sydney.ns/)    
+[Sydney](//www.facebook.com/groups/free.code.camp.sydney.au/)    
+[Szczecin](//www.facebook.com/groups/free.code.camp.szczecin/)    
+[Taipei](//www.facebook.com/groups/free.code.camp.taipei/)    
+[Tallahassee](//www.facebook.com/groups/free.code.camp.tallahassee.florida/)    
+[Tallinn](//www.facebook.com/groups/free.code.camp.tallinn/)    
+[Tampa Bay](//www.facebook.com/groups/free.code.camp.tampa/)    
+[Targu Mures](https://www.facebook.com/groups/free.code.camp.targu.mures/)    
+[Tashkent](//www.facebook.com/groups/free.code.camp.tashkent/)    
+[Tegucigalpa](//www.facebook.com/groups/free.code.camp.Honduras/)    
+[Tehran](//www.facebook.com/groups/free.code.camp.tehran/)    
+[Tel Aviv](//www.facebook.com/groups/free.code.camp.Tel.Aviv/)    
+[Temecula](//www.facebook.com/groups/free.code.camp.temecula/)    
+[Tempe](//www.facebook.com/groups/free.code.camp.tempe.phoenix.scottsdale/)    
+[Thessaloniki](//www.facebook.com/groups/free.code.camp.thessaloniki/)    
+[Ticino](//www.facebook.com/groups/free.code.camp.ticino/)    
+[Tijuana](//www.facebook.com/groups/free.code.camp.tijuana/)    
+[Timisoara](//www.facebook.com/groups/free.code.camp.timisoara/)    
+[Tirana](//www.facebook.com/groups/free.code.camp.tirana/)    
+[Tiraspol](https://www.facebook.com/groups/free.code.camp.tiraspol/)    
+[Tokyo](//www.facebook.com/groups/free.code.camp.tokyo/)    
+[Tom's River](//www.facebook.com/groups/free.code.camp.toms.river/)    
+[Torino](//www.facebook.com/groups/free.code.camp.torino/)    
+[Toronto](//www.facebook.com/groups/free.code.camp.to/)    
+[Tri-Cities Washington](//www.facebook.com/groups/free.code.camp.tricitieswa/)    
+[Trivandrum](//www.facebook.com/groups/freecodecamp.trivandrum/)    
+[Trondheim](//www.facebook.com/groups/free.code.camp.trondheim/)    
+[Tucson](//www.facebook.com/groups/free.code.camp.tucson/)    
+[Tulsa](//www.facebook.com/groups/free.code.camp.tulsa/)    
+[Tunis](//www.facebook.com/groups/free.code.camp.tunisia/)
+[Tupelo MS](https://www.facebook.com/groups/148780962143254/)    
+[Ulaanbaatar](https://www.facebook.com/groups/free.code.camp.your.ulaanbaatar/)    
+[University Center](//www.facebook.com/groups/free.code.camp.university.center/)    
+[Valdosta](//www.facebook.com/groups/free.code.camp.valdosta/)    
+[Valencia](//www.facebook.com/groups/free.code.camp.vlc/)    
+[Vancouver](//www.facebook.com/groups/free.code.camp.vancouver.bc.canada/)    
+[Verde Valley](//www.facebook.com/groups/free.code.camp.northern.arizona/)    
+[Victoria](//www.facebook.com/groups/free.code.camp.victoria.bc/)    
+[Vilnius](//www.facebook.com/groups/free.code.camp.vilnius.lt/)    
+[Virginia Beach](//www.facebook.com/groups/free.code.camp.virginia.beach/)    
+[Vitória](//www.facebook.com/groups/free.code.camp.vitoria.e.regiao.metropolitana.es/)    
+[Vladivostok](//www.facebook.com/groups/free.code.camp.vladivostok/)    
+[Warrington](//www.facebook.com/groups/free.code.camp.warrington/)    
+[Warsaw](//www.facebook.com/groups/free.code.camp.warsaw/)    
+[Washington, DC](//www.facebook.com/groups/free.code.camp.washington.dc/)    
+[Waterford](//www.facebook.com/groups/free.code.camp.waterford/)    
+[Wichita](//www.facebook.com/groups/free.code.camp.wichita/)    
+[Wilmington, NC](https://www.facebook.com/groups/free.code.camp.wilmington.nc/)    
+[Winnipeg](//www.facebook.com/groups/free.code.camp.winnipeg/)    
+[Wuerzburg](//www.facebook.com/groups/free.code.camp.wuerzburg/)    
+[Yangon](//www.facebook.com/groups/free.code.camp.myanmar)    
+[Yaounde](//www.facebook.com/groups/free.code.camp.yaounde)    
+[Yaroslavl](//www.facebook.com/groups/free.code.camp.yaroslavl/)    
+[Yekaterinburg](//www.facebook.com/groups/free.code.camp.yekaterinburg)    
+[Yerevan](//www.facebook.com/groups/free.code.camp.armenia/)    
+[Zacatecas](//www.facebook.com/groups/free.code.camp.zacatecas/)    
+[Zacatecas](https://www.facebook.com/groups/free.code.camp.zacatecas/)    
+[Zagreb](//www.facebook.com/groups/free.code.camp.zagreb/)    
+[Zhytomyr](https://www.facebook.com/groups/free.code.camp.zhytomyr/)    
+[Znojmo](//www.facebook.com/groups/free.code.camp.znojmo/)    
 [Zurich](//www.facebook.com/groups/free.code.camp.zurich/)    
\ No newline at end of file
diff --git a/Map.md b/Map.md
index 3e5701b..1efdaf6 100644
--- a/Map.md
+++ b/Map.md
@@ -1,256 +1,256 @@
-# HTML5 and CSS
-1. [Waypoint: Say Hello to HTML Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Say-Hello-to-HTML-Elements)
-2. [Waypoint: Headline with the h2 Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Headline-with-the-h2-Element)
-3. [Waypoint: Inform with the Paragraph Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Inform-with-the-Paragraph-Element)
-4. [Waypoint: Uncomment HTML](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Uncomment-HTML)
-5. [Waypoint: Comment out HTML](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Comment-out-HTML)
-6. [Waypoint: Fill in the Blank with Placeholder Text](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Fill-in-the-Blank-with-Placeholder-Text)
-7. [Waypoint: Delete HTML Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Delete-HTML-Elements)
-8. [Waypoint: Change the Color of Text](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Change-the-Color-of-Text)
-9. [Waypoint: Use CSS Selectors to Style Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-CSS-Selectors-to-Style-Elements)
-10. [Waypoint: Use a CSS Class to Style an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-a-CSS-Class-to-Style-an-Element)
-11. [Waypoint: Style Multiple Elements with a CSS Class](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Style-Multiple-Elements-with-a-CSS-Class)
-12. [Waypoint: Change the Font Size of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Change-the-Font-Size-of-an-Element)
-13. [Waypoint: Set the Font Family of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Set-the-Font-Family-of-an-Element)
-14. [Waypoint: Import a Google Font](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Import-a-Google-Font)
-15. [Waypoint: Specify How Fonts Should Degrade](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Specify-How-Fonts-Should-Degrade)
-16. [Waypoint: Add Images to your Website](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Images-to-your-Website)
-17. [Waypoint: Size your Images](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Size-your-Images)
-18. [Waypoint: Add Borders Around your Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Borders-Around-your-Elements)
-19. [Waypoint: Add Rounded Corners with a Border Radius](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Rounded-Corners-with-a-Border-Radius)
-20. [Waypoint: Make Circular Images with a Border Radius](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Make-Circular-Images-with-a-Border-Radius)
-21. [Waypoint: Link to External Pages with Anchor Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Link-to-External-Pages-with-Anchor-Elements)
-22. [Waypoint: Nest an Anchor Element within a Paragraph](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Nest-an-Anchor-Element-within-a-Paragraph))
-23. [Waypoint: Make Dead Links using the Hash Symbol](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Make-Dead-Links-using-the-Hash-Symbol)
-24. [Waypoint: Turn an Image into a Link](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Turn-an-Image-into-a-Link)
-25. [Waypoint: Add Alt Text to an Image for Accessibility](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Alt-Text-to-an-Image-for-Accessibility)
-26. [Waypoint: Create a Bulleted Unordered List](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Bulleted-Unordered-List)
-27. [Waypoint: Create an Ordered List](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-an-Ordered-List)
-28. [Waypoint: Create a Text Field](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Text-Field)
-29. [Waypoint: Add Placeholder Text to a Text Field](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Placeholder-Text-to-a-Text-Field)
-30. [Waypoint: Create a Form Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Form-Element)
-31. [Waypoint: Add a Submit Button to a Form](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-a-Submit-Button-to-a-Form)
-32. [Waypoint: Use HTML5 to Require a Field](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-HTML5-to-Require-a-Field)
-33. [Waypoint: Create a Set of Radio Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Set-of-Radio-Buttons)
-34. [Waypoint: Create a Set of Checkboxes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Set-of-Checkboxes)
-35. [Waypoint: Check Radio Buttons and Checkboxes by Default](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Check-Radio-Buttons-and-Checkboxes-by-Default)
-36. [Waypoint: Nest Many Elements within a Single Div Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Nest-Many-Elements-within-a-Single-Div-Element)
-37. [Waypoint: Give a Background Color to a Div Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Give-a-Background-Color-to-a-Div-Element)
-38. [Waypoint: Set the ID of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Set-the-ID-of-an-Element)
-39. [Waypoint: Use an ID Attribute to Style an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-an-ID-Attribute-to-Style-an-Element)
-40. [Waypoint: Adjusting the Padding of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Adjusting-the-Padding-of-an-Element)
-41. [Waypoint: Adjust the Margin of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Adjust-the-Margin-of-an-Element)
-42. [Waypoint: Add a Negative Margin to an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-a-Negative-Margin-to-an-Element)
-43. [Waypoint: Add Different Padding to Each Side of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Different-Padding-to-Each-Side-of-an-Element)
-44. [Waypoint: Add Different Margins to Each Side of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Different-Margins-to-Each-Side-of-an-Element)
-45. [Waypoint: Use Clockwise Notation to Specify the Padding of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Clockwise-Notation-to-Specify-the-Padding-of-an-Element)
-46. [Waypoint: Use Clockwise Notation to Specify the Margin of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Clockwise-Notation-to-Specify-the-Margin-of-an-Element)
-47. [Waypoint: Style the HTML Body Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Style-the-HTML-Body-Element)
-48. [Waypoint: Inherit Styles from the Body Element Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Inherit-Styles-from-the-Body-Element)
-49. [Waypoint: Prioritize One Style Over Another Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Prioritize-One-Style-Over-Another)
-50. [Waypoint: Override Styles in Subsequent CSS Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Override-Styles-in-Subsequent-CSS)
-51. [Waypoint: Override Class Declarations by Styling ID Attributes Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Override-Class-Declarations-by-Styling-ID-Attributes)
-52. [Waypoint: Override Class Declarations with Inline Styles Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Override-Class-Declarations-with-Inline-Styles)
-53. [Waypoint: Override All Other Styles by using Important Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Override-All-Other-Styles-by-using-Important)
-54. [Waypoint: Use Hex Code for Specific Colors Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-for-Specific-Colors)
-55. [Waypoint: Use Hex Code to Color Elements White Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-to-Color-Elements-White)
-56. [Waypoint: Use Hex Code to Color Elements Red Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-to-Color-Elements-Red)
-57. [Waypoint: Use Hex Code to Color Elements Green Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-to-Color-Elements-Green)
-58. [Waypoint: Use Hex Code to Color Elements Blue](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-to-Color-Elements-Blue)
-59. [Waypoint: Use Hex Code to Mix Colors](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-to-Mix-Colors)
-60. [Waypoint: Use Hex Code to Color Elements Gray](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-to-Color-Elements-Gray)
-61. [Waypoint: Use Hex Code for Specific Shades of Gray](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-for-Specific-Shades-of-Gray)
-62. [Waypoint: Use Abbreviated Hex Code](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Abbreviated-Hex-Code)
-63. [Waypoint: Use RGB values to Color Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-RGB-values-to-Color-Elements)
-64. [Waypoint: Use RGB to Color Elements White](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-RGB-to-Color-Elements-White)
-65. [Waypoint: Use RGB to Color Elements Red](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-RGB-to-Color-Elements-Red)
-66. [Waypoint: Use RGB to Color Elements Green](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-RGB-to-Color-Elements-Green)
-67. [Waypoint: Use RGB to Color Elements Blue](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-RGB-to-Color-Elements-Blue)
-68. [Waypoint: Use RGB to Mix Colors](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-RGB-to-Mix-Colors)
-69. [Waypoint: Use RGB to Color Elements Gray](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-RGB-to-Color-Elements-Gray)
-
-# Responsive Design with Bootstrap
-1. [Waypoint: Use Responsive Design with Bootstrap Fluid Containers](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Responsive-Design-with-Bootstrap-Fluid-Containers)
-2. [Waypoint: Make Images Mobile Responsive](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Make-Images-Mobile-Responsive)
-3. [Waypoint: Center Text with Bootstrap](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Center-Text-with-Bootstrap)
-4. [Waypoint: Create a Bootstrap Button](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Bootstrap-Button)
-5. [Waypoint: Create a Block Element Bootstrap Button](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Block-Element-Bootstrap-Button)
-6. [Waypoint: Taste the Bootstrap Button Color Rainbow](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Taste-the-Bootstrap-Button-Color-Rainbow)
-7. [Waypoint: Call out Optional Actions with Button Info](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Call-out-Optional-Actions-with-Button-Info)
-8. [Waypoint: Warn your Users of a Dangerous Action](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Warn-your-Users-of-a-Dangerous-Action)
-9. [Waypoint: Use the Bootstrap Grid to Put Elements Side By Side](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-the-Bootstrap-Grid-to-Put-Elements-Side-By-Side)
-10. [Waypoint: Ditch Custom CSS for Bootstrap](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Ditch-Custom-CSS-for-Bootstrap)
-11. [Waypoint: Use Spans for Inline Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Spans-for-Inline-Elements)
-12. [Waypoint: Create a Custom Heading](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Custom-Heading)
-13. [Waypoint: Add Font Awesome Icons to our Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Font-Awesome-Icons-to-our-Buttons)
-14. [Waypoint: Add Font Awesome Icons to all of our Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Font-Awesome-Icons-to-all-of-our-Buttons)
-15. [Waypoint: Responsively Style Radio Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Responsively-Style-Radio-Buttons)
-16. [Waypoint: Responsively Style Checkboxes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Responsively-Style-Checkboxes)
-17. [Waypoint: Style Text Inputs as Form Controls](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Style-Text-Inputs-as-Form-Controls)
-18. [Waypoint: Line up Form Elements Responsively with Bootstrap](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Line-up-Form-Elements-Responsively-with-Bootstrap)
-19. [Waypoint: Create a Bootstrap Headline](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Bootstrap-Headline)
-20. [Waypoint: House our page within a Bootstrap Container Fluid Div](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-House-our-page-within-a-Bootstrap-Container-Fluid-Div)
-21. [Waypoint: Create a Bootstrap Row](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Bootstrap-Row)
-22. [Waypoint: Split your Bootstrap Row](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Split-your-Bootstrap-Row)
-23. [Waypoint: Create Bootstrap Wells](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-Bootstrap-Wells)
-24. [Waypoint: Add Elements within your Bootstrap Wells](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Elements-within-your-Bootstrap-Wells)
-25. [Waypoint: Apply the Default Bootstrap Button Style](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Apply-the-Default-Bootstrap-Button-Style)
-26. [Waypoint: Create a Class to Target with jQuery Selectors](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Class-to-Target-with-jQuery-Selectors)
-27. [Waypoint: Add ID Attributes to Bootstrap Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-ID-Attributes-to-Bootstrap-Elements)
-28. [Waypoint: Label Bootstrap Wells](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Label-Bootstrap-Wells)
-29. [Waypoint: Give Each Element a Unique ID](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Give-Each-Element-a-Unique-ID)
-30. [Waypoint: Label Bootstrap Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Label-Bootstrap-Buttons)
-31. [Waypoint: Use Comments to Clarify Code](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Comments-to-Clarify-Code)
-
-# jQuery
-1. [Waypoint: Learn how Script Tags and Document Ready Work](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Learn-how-Script-Tags-and-Document-Ready-Work)
-2. [Waypoint: Target HTML Elements with Selectors Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Target-HTML-Elements-with-Selectors-Using-jQuery)
-3. [Waypoint: Target Elements by Class Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Target-Elements-by-Class-Using-jQuery)
-4. [Waypoint: Target Elements by ID Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Target-Elements-by-ID-Using-jQuery)
-5. [Waypoint: Delete your jQuery Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Delete-your-jQuery-Functions)
-6. [Waypoint: Target the same element with multiple jQuery Selectors](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Target-the-same-element-with-multiple-jQuery-Selectors)
-7. [Waypoint: Remove Classes from an element with jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Remove-Classes-from-an-element-with-jQuery)
-8. [Waypoint: Change the CSS of an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Change-the-CSS-of-an-Element-Using-jQuery)
-9. [Waypoint: Disable an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Disable-an-Element-Using-jQuery)
-10. [Waypoint: Remove an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Remove-an-Element-Using-jQuery)
-11. [Waypoint: Use appendTo to Move Elements with jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-appendTo-to-Move-Elements-with-jQuery)
-12. [Waypoint: Clone an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Clone-an-Element-Using-jQuery)
-13. [Waypoint: Target the Parent of an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Target-the-Parent-of-an-Element-Using-jQuery)
-14. [Waypoint: Target the Children of an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Target-the-Children-of-an-Element-Using-jQuery)
-15. [Waypoint: Target a Specific Child of an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Target-a-Specific-Child-of-an-Element-Using-jQuery)
-16. [Waypoint: Target Even Numbered Elements Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Target-Even-Numbered-Elements-Using-jQuery)
-17. [Waypoint: Use jQuery to Modify the Entire Page](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-jQuery-to-Modify-the-Entire-Page)
-
-# Basic JavaScript
-1. [Waypoint: Comment your JavaScript Code](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Comment-your-JavaScript-Code)
-2. [Waypoint: Understand Boolean Values](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Understand-Boolean-Values)
-3. [Waypoint: Declare JavaScript Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Declare-JavaScript-Variables)
-4. [Waypoint: Declare String Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Declare-String-Variables)
-5. [Waypoint: Check the Length Property of a String Variable](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Check-the-Length-Property-of-a-String-Variable)
-6. [Waypoint: Use Bracket Notation to Find the First Character in a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Bracket-Notation-to-Find-the-First-Character-in-a-String)
-7. [Waypoint: Use Bracket Notation to Find the Nth Character in a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Bracket-Notation-to-Find-the-Nth-Character-in-a-String)
-8. [Waypoint: Use Bracket Notation to Find the Last Character in a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Bracket-Notation-to-Find-the-Last-Character-in-a-String)
-9. [Waypoint: Use Bracket Notation to Find the Nth-to-Last Character in a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Bracket-Notation-to-Find-the-Nth-to-Last-Character-in-a-String)
-10. [Waypoint: Add Two Numbers with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Two-Numbers-with-JavaScript)
-11. [Waypoint: Subtract One Number from Another with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Subtract-One-Number-from-Another-with-JavaScript)
-12. [Waypoint: Multiply Two Numbers with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Multiply-Two-Numbers-with-JavaScript)
-13. [Waypoint: Divide One Number by Another with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Divide-One-Number-by-Another-with-JavaScript)
-14. [Waypoint: Create Decimal Numbers with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-Decimal-Numbers-with-JavaScript)
-15. [Waypoint: Perform Arithmetic Operations on Decimals with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Perform-Arithmetic-Operations-on-Decimals-with-JavaScript)
-16. [Waypoint: Store Multiple Values in one Variable using JavaScript Arrays](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Store-Multiple-Values-in-one-Variable-using-JavaScript-Arrays)
-17. [Waypoint: Nest one Array within Another Array](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Nest-one-Array-within-Another-Array)
-18. [Waypoint: Access Array Data with Indexes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Access-Array-Data-with-Indexes)
-19. [Waypoint: Modify Array Data With Indexes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Modify-Array-Data-With-Indexes)
-20. [Waypoint: Manipulate Arrays With pop()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Manipulate-Arrays-With-pop())
-21. [Waypoint: Manipulate Arrays With push()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Manipulate-Arrays-With-push())
-22. [Waypoint: Manipulate Arrays With shift()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Manipulate-Arrays-With-shift())
-23. [Waypoint: Manipulate Arrays With unshift()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Manipulate-Arrays-With-unshift())
-24. [Waypoint: Write Reusable JavaScript with Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Write-Reusable-JavaScript-with-Functions)
-25. [Waypoint: Build JavaScript Objects](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Build-JavaScript-Objects)
-26. [Waypoint: Manipulate JavaScript Objects](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Manipulate-JavaScript-Objects)
-27. [Waypoint: Iterate with JavaScript For Loops](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Iterate-with-JavaScript-For-Loops)
-28. [Waypoint: Iterate with JavaScript While Loops](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Iterate-with-JavaScript-While-Loops)
-29. [Waypoint: Generate Random Fractions with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Generate-Random-Fractions-with-JavaScript)
-30. [Waypoint: Generate Random Whole Numbers with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Generate-Random-Whole-Numbers-with-JavaScript)
-31. [Waypoint: Generate Random Whole Numbers within a Range](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Generate-Random-Whole-Numbers-within-a-Range)
-32. [Waypoint: Use Conditional Logic with If-Else Statements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Conditional-Logic-with-If-Else-Statements)
-33. [Waypoint: Sift through Text with Regular Expressions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Sift-through-Text-with-Regular-Expressions)
-34. [Waypoint: Find Numbers with Regular Expressions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Find-Numbers-with-Regular-Expressions)
-35. [Waypoint: Find White Space with Regular Expressions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Find-White-Space-with-Regular-Expressions)
-36. [Waypoint: Invert Regular Expression Matches with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Invert-Regular-Expression-Matches-with-JavaScript)
-37. [Waypoint: Create a JavaScript Slot Machine](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-JavaScript-Slot-Machine)
-38. [Waypoint: Add your JavaScript Slot Machine Slots](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-your-JavaScript-Slot-Machine-Slots)
-39. [Waypoint: Bring your JavaScript Slot Machine to Life](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Bring-your-JavaScript-Slot-Machine-to-Life)
-40. [Waypoint: Give your JavaScript Slot Machine some stylish images](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Give-your-JavaScript-Slot-Machine-some-stylish-images)
-
-# Object Oriented and Functional Programming
-1. [Waypoint: Declare JavaScript Objects as Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Declare-JavaScript-Objects-as-Variables)
-2. [Waypoint: Construct JavaScript Objects with Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Construct-JavaScript-Objects-with-Functions)
-3. [Waypoint: Make Object Properties Private](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Make-Object-Properties-Private)
-4. [Waypoint: Make Instances of Objects with a Constructor Function](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Make-Instances-of-Objects-with-a-Constructor-Function)
-5. [Waypoint: Iterate over Arrays with .map](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Iterate-over-Arrays-with-map)
-6. [Waypoint: Condense arrays with .reduce](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Condense-arrays-with-reduce)
-7. [Waypoint: Filter Arrays with .filter](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Filter-Arrays-with-filter)
-8. [Waypoint: Sort Arrays with .sort](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Sort-Arrays-with-sort)
-9. [Waypoint: Reverse Arrays with .reverse](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Reverse-Arrays-with-reverse)
-10. [Waypoint: Concatenate Strings with .concat](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Concatenate-Strings-with-.concat)
-11. [Waypoint: Split Strings with .split](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Split-Strings-with-split)
-12. [Waypoint: Join Strings with .join](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Join-Strings-with-.join)
-
-# Basic Algorithm Scripting
-1. [Bonfire: Meet Bonfire](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Meet-Bonfire)
-2. [Bonfire: Reverse a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Reverse-a-String)
-3. [Bonfire: Factorialize a Number](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Factorialize-a-Number)
-4. [Bonfire: Check for Palindromes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Check-for-Palindromes)
-5. [Bonfire: Find the Longest Word in a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-find-the-longest-word-in-a-string)
-6. [Bonfire: Title Case a Sentence](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-title-case-a-sentence)
-7. [Bonfire: Return Largest Numbers in Arrays](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-return-largest-numbers-in-arrays)
-8. [Bonfire: Confirm the Ending](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Confirm-the-Ending)
-9. [Bonfire: Repeat a string repeat a string](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-repeat-a-string-repeat-a-string)
-10. [Bonfire: Truncate a string](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-truncate-a-string)
-11. [Bonfire: Chunky Monkey](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Chunky-Monkey)
-12. [Bonfire: Slasher Flick](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-slasher-flick)
-13. [Bonfire: Mutations](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-mutations)
-14. [Bonfire: Falsey Bouncer](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Falsy-Bouncer)
-15. [Bonfire: Seek and Destroy](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Seek-and-Destroy)
-16. [Bonfire: Where do I belong](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Where-do-I-belong)
-
-# Intermediate Algorithm Scripting
-1. [Bonfire: Sum All Numbers in a Range](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Sum-All-Numbers-in-a-Range)
-2. [Bonfire: Diff Two Arrays](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Diff-Two-Arrays)
-3. [Bonfire: Roman Numeral Converter](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-roman-numeral-converter)
-4. [Bonfire: Where art thou](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Where-art-thou)
-5. [Bonfire: Search and Replace](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Search-and-Replace)
-6. [Bonfire: Pig Latin](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Pig-Latin)
-7. [Bonfire: DNA Pairing](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-DNA-Pairing)
-8. [Bonfire: Missing letters](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Missing-letters)
-9. [Bonfire: Boo who](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Boo-who)
-10. [Bonfire: Sorted Union](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Sorted-Union)
-11. [Bonfire: Convert HTML Entities](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-convert-HTML-entities)
-12. [Bonfire: Spinal Tap Case](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Spinal-Tap-Case)
-13. [Bonfire: Sum All Odd Fibonacci Numbers](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-sum-all-odd-fibonacci-numbers)
-14. [Bonfire: Sum All Primes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-sum-all-primes)
-15. [Bonfire: Smallest Common Multiple](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Smallest-Common-Multiple)
-16. [Bonfire: Finders Keepers](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-finders-keepers)
-17. [Bonfire: Drop it](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Drop-it)
-18. [Bonfire: Steamroller](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-steamroller)
-19. [Bonfire: Binary Agents](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Binary-Agents)
-20. [Bonfire: Everything Be True](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Everything-be-True)
-21. [Bonfire: Arguments Optional](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Arguments-Optional)
-
-# Upper Intermediate Algorithm Scripting
-1. [Bonfire: Make a Person](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-make-a-person)
-2. [Bonfire: Map the Debris](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-map-the-debris)
-3. [Bonfire: Pairwise](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-pairwise)
-
-# Automated Testing and Debugging
-1. [Waypoint: Use the Javascript Console](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-the-Javascript-Console)
-2. [Waypoint: Using typeof](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Using-typeof)
-
-# Advanced Algorithm Scripting
-1. [Bonfire: Validate US Telephone Numbers](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Validate-US-Telephone-Numbers)
-2. [Bonfire: Symmetric Difference](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Symmetric-Difference)
-3. [Bonfire: Exact Change](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Exact-Change)
-4. [Bonfire: Inventory Update](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-inventory-update)
-5. [Bonfire: No repeats please](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-no-repeats-please)
-6. [Bonfire: Friendly Date Ranges](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Friendly-Date-Ranges)
-
-# AngularJS
-1. Waypoint: Get Started with Angular.js
-2. Waypoint: Apply Angular.js Directives
-3. Waypoint: Power Forms with Angular.js
-4. Waypoint: Customize Angular.js Directives
-5. Waypoint: Create Angular.js Services
-
-# Git
-1. Waypoint: Save your Code Revisions Forever with Git
-
-# Node.js and Express.js
-1. Waypoint: Manage Packages with NPM
-2. Waypoint: Start a Node.js Server
-3. Waypoint: Continue working with Node.js Servers
-4. Waypoint: Finish working with Node.js Servers
-5. Waypoint: Build Web Apps with Express.js
-
-# MongoDB
-1. Waypoint: Store Data in MongoDB
+# HTML5 and CSS
+1. [Waypoint: Say Hello to HTML Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Say-Hello-to-HTML-Elements)
+2. [Waypoint: Headline with the h2 Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Headline-with-the-h2-Element)
+3. [Waypoint: Inform with the Paragraph Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Inform-with-the-Paragraph-Element)
+4. [Waypoint: Uncomment HTML](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Uncomment-HTML)
+5. [Waypoint: Comment out HTML](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Comment-out-HTML)
+6. [Waypoint: Fill in the Blank with Placeholder Text](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Fill-in-the-Blank-with-Placeholder-Text)
+7. [Waypoint: Delete HTML Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Delete-HTML-Elements)
+8. [Waypoint: Change the Color of Text](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Change-the-Color-of-Text)
+9. [Waypoint: Use CSS Selectors to Style Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-CSS-Selectors-to-Style-Elements)
+10. [Waypoint: Use a CSS Class to Style an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-a-CSS-Class-to-Style-an-Element)
+11. [Waypoint: Style Multiple Elements with a CSS Class](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Style-Multiple-Elements-with-a-CSS-Class)
+12. [Waypoint: Change the Font Size of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Change-the-Font-Size-of-an-Element)
+13. [Waypoint: Set the Font Family of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Set-the-Font-Family-of-an-Element)
+14. [Waypoint: Import a Google Font](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Import-a-Google-Font)
+15. [Waypoint: Specify How Fonts Should Degrade](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Specify-How-Fonts-Should-Degrade)
+16. [Waypoint: Add Images to your Website](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Images-to-your-Website)
+17. [Waypoint: Size your Images](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Size-your-Images)
+18. [Waypoint: Add Borders Around your Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Borders-Around-your-Elements)
+19. [Waypoint: Add Rounded Corners with a Border Radius](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Rounded-Corners-with-a-Border-Radius)
+20. [Waypoint: Make Circular Images with a Border Radius](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Make-Circular-Images-with-a-Border-Radius)
+21. [Waypoint: Link to External Pages with Anchor Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Link-to-External-Pages-with-Anchor-Elements)
+22. [Waypoint: Nest an Anchor Element within a Paragraph](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Nest-an-Anchor-Element-within-a-Paragraph))
+23. [Waypoint: Make Dead Links using the Hash Symbol](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Make-Dead-Links-using-the-Hash-Symbol)
+24. [Waypoint: Turn an Image into a Link](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Turn-an-Image-into-a-Link)
+25. [Waypoint: Add Alt Text to an Image for Accessibility](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Alt-Text-to-an-Image-for-Accessibility)
+26. [Waypoint: Create a Bulleted Unordered List](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Bulleted-Unordered-List)
+27. [Waypoint: Create an Ordered List](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-an-Ordered-List)
+28. [Waypoint: Create a Text Field](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Text-Field)
+29. [Waypoint: Add Placeholder Text to a Text Field](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Placeholder-Text-to-a-Text-Field)
+30. [Waypoint: Create a Form Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Form-Element)
+31. [Waypoint: Add a Submit Button to a Form](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-a-Submit-Button-to-a-Form)
+32. [Waypoint: Use HTML5 to Require a Field](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-HTML5-to-Require-a-Field)
+33. [Waypoint: Create a Set of Radio Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Set-of-Radio-Buttons)
+34. [Waypoint: Create a Set of Checkboxes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Set-of-Checkboxes)
+35. [Waypoint: Check Radio Buttons and Checkboxes by Default](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Check-Radio-Buttons-and-Checkboxes-by-Default)
+36. [Waypoint: Nest Many Elements within a Single Div Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Nest-Many-Elements-within-a-Single-Div-Element)
+37. [Waypoint: Give a Background Color to a Div Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Give-a-Background-Color-to-a-Div-Element)
+38. [Waypoint: Set the ID of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Set-the-ID-of-an-Element)
+39. [Waypoint: Use an ID Attribute to Style an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-an-ID-Attribute-to-Style-an-Element)
+40. [Waypoint: Adjusting the Padding of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Adjusting-the-Padding-of-an-Element)
+41. [Waypoint: Adjust the Margin of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Adjust-the-Margin-of-an-Element)
+42. [Waypoint: Add a Negative Margin to an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-a-Negative-Margin-to-an-Element)
+43. [Waypoint: Add Different Padding to Each Side of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Different-Padding-to-Each-Side-of-an-Element)
+44. [Waypoint: Add Different Margins to Each Side of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Different-Margins-to-Each-Side-of-an-Element)
+45. [Waypoint: Use Clockwise Notation to Specify the Padding of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Clockwise-Notation-to-Specify-the-Padding-of-an-Element)
+46. [Waypoint: Use Clockwise Notation to Specify the Margin of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Clockwise-Notation-to-Specify-the-Margin-of-an-Element)
+47. [Waypoint: Style the HTML Body Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Style-the-HTML-Body-Element)
+48. [Waypoint: Inherit Styles from the Body Element Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Inherit-Styles-from-the-Body-Element)
+49. [Waypoint: Prioritize One Style Over Another Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Prioritize-One-Style-Over-Another)
+50. [Waypoint: Override Styles in Subsequent CSS Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Override-Styles-in-Subsequent-CSS)
+51. [Waypoint: Override Class Declarations by Styling ID Attributes Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Override-Class-Declarations-by-Styling-ID-Attributes)
+52. [Waypoint: Override Class Declarations with Inline Styles Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Override-Class-Declarations-with-Inline-Styles)
+53. [Waypoint: Override All Other Styles by using Important Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Override-All-Other-Styles-by-using-Important)
+54. [Waypoint: Use Hex Code for Specific Colors Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-for-Specific-Colors)
+55. [Waypoint: Use Hex Code to Color Elements White Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-to-Color-Elements-White)
+56. [Waypoint: Use Hex Code to Color Elements Red Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-to-Color-Elements-Red)
+57. [Waypoint: Use Hex Code to Color Elements Green Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-to-Color-Elements-Green)
+58. [Waypoint: Use Hex Code to Color Elements Blue](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-to-Color-Elements-Blue)
+59. [Waypoint: Use Hex Code to Mix Colors](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-to-Mix-Colors)
+60. [Waypoint: Use Hex Code to Color Elements Gray](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-to-Color-Elements-Gray)
+61. [Waypoint: Use Hex Code for Specific Shades of Gray](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-for-Specific-Shades-of-Gray)
+62. [Waypoint: Use Abbreviated Hex Code](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Abbreviated-Hex-Code)
+63. [Waypoint: Use RGB values to Color Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-RGB-values-to-Color-Elements)
+64. [Waypoint: Use RGB to Color Elements White](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-RGB-to-Color-Elements-White)
+65. [Waypoint: Use RGB to Color Elements Red](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-RGB-to-Color-Elements-Red)
+66. [Waypoint: Use RGB to Color Elements Green](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-RGB-to-Color-Elements-Green)
+67. [Waypoint: Use RGB to Color Elements Blue](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-RGB-to-Color-Elements-Blue)
+68. [Waypoint: Use RGB to Mix Colors](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-RGB-to-Mix-Colors)
+69. [Waypoint: Use RGB to Color Elements Gray](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-RGB-to-Color-Elements-Gray)
+
+# Responsive Design with Bootstrap
+1. [Waypoint: Use Responsive Design with Bootstrap Fluid Containers](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Responsive-Design-with-Bootstrap-Fluid-Containers)
+2. [Waypoint: Make Images Mobile Responsive](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Make-Images-Mobile-Responsive)
+3. [Waypoint: Center Text with Bootstrap](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Center-Text-with-Bootstrap)
+4. [Waypoint: Create a Bootstrap Button](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Bootstrap-Button)
+5. [Waypoint: Create a Block Element Bootstrap Button](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Block-Element-Bootstrap-Button)
+6. [Waypoint: Taste the Bootstrap Button Color Rainbow](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Taste-the-Bootstrap-Button-Color-Rainbow)
+7. [Waypoint: Call out Optional Actions with Button Info](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Call-out-Optional-Actions-with-Button-Info)
+8. [Waypoint: Warn your Users of a Dangerous Action](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Warn-your-Users-of-a-Dangerous-Action)
+9. [Waypoint: Use the Bootstrap Grid to Put Elements Side By Side](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-the-Bootstrap-Grid-to-Put-Elements-Side-By-Side)
+10. [Waypoint: Ditch Custom CSS for Bootstrap](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Ditch-Custom-CSS-for-Bootstrap)
+11. [Waypoint: Use Spans for Inline Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Spans-for-Inline-Elements)
+12. [Waypoint: Create a Custom Heading](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Custom-Heading)
+13. [Waypoint: Add Font Awesome Icons to our Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Font-Awesome-Icons-to-our-Buttons)
+14. [Waypoint: Add Font Awesome Icons to all of our Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Font-Awesome-Icons-to-all-of-our-Buttons)
+15. [Waypoint: Responsively Style Radio Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Responsively-Style-Radio-Buttons)
+16. [Waypoint: Responsively Style Checkboxes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Responsively-Style-Checkboxes)
+17. [Waypoint: Style Text Inputs as Form Controls](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Style-Text-Inputs-as-Form-Controls)
+18. [Waypoint: Line up Form Elements Responsively with Bootstrap](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Line-up-Form-Elements-Responsively-with-Bootstrap)
+19. [Waypoint: Create a Bootstrap Headline](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Bootstrap-Headline)
+20. [Waypoint: House our page within a Bootstrap Container Fluid Div](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-House-our-page-within-a-Bootstrap-Container-Fluid-Div)
+21. [Waypoint: Create a Bootstrap Row](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Bootstrap-Row)
+22. [Waypoint: Split your Bootstrap Row](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Split-your-Bootstrap-Row)
+23. [Waypoint: Create Bootstrap Wells](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-Bootstrap-Wells)
+24. [Waypoint: Add Elements within your Bootstrap Wells](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Elements-within-your-Bootstrap-Wells)
+25. [Waypoint: Apply the Default Bootstrap Button Style](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Apply-the-Default-Bootstrap-Button-Style)
+26. [Waypoint: Create a Class to Target with jQuery Selectors](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-Class-to-Target-with-jQuery-Selectors)
+27. [Waypoint: Add ID Attributes to Bootstrap Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-ID-Attributes-to-Bootstrap-Elements)
+28. [Waypoint: Label Bootstrap Wells](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Label-Bootstrap-Wells)
+29. [Waypoint: Give Each Element a Unique ID](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Give-Each-Element-a-Unique-ID)
+30. [Waypoint: Label Bootstrap Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Label-Bootstrap-Buttons)
+31. [Waypoint: Use Comments to Clarify Code](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Comments-to-Clarify-Code)
+
+# jQuery
+1. [Waypoint: Learn how Script Tags and Document Ready Work](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Learn-how-Script-Tags-and-Document-Ready-Work)
+2. [Waypoint: Target HTML Elements with Selectors Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Target-HTML-Elements-with-Selectors-Using-jQuery)
+3. [Waypoint: Target Elements by Class Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Target-Elements-by-Class-Using-jQuery)
+4. [Waypoint: Target Elements by ID Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Target-Elements-by-ID-Using-jQuery)
+5. [Waypoint: Delete your jQuery Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Delete-your-jQuery-Functions)
+6. [Waypoint: Target the same element with multiple jQuery Selectors](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Target-the-same-element-with-multiple-jQuery-Selectors)
+7. [Waypoint: Remove Classes from an element with jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Remove-Classes-from-an-element-with-jQuery)
+8. [Waypoint: Change the CSS of an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Change-the-CSS-of-an-Element-Using-jQuery)
+9. [Waypoint: Disable an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Disable-an-Element-Using-jQuery)
+10. [Waypoint: Remove an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Remove-an-Element-Using-jQuery)
+11. [Waypoint: Use appendTo to Move Elements with jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-appendTo-to-Move-Elements-with-jQuery)
+12. [Waypoint: Clone an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Clone-an-Element-Using-jQuery)
+13. [Waypoint: Target the Parent of an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Target-the-Parent-of-an-Element-Using-jQuery)
+14. [Waypoint: Target the Children of an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Target-the-Children-of-an-Element-Using-jQuery)
+15. [Waypoint: Target a Specific Child of an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Target-a-Specific-Child-of-an-Element-Using-jQuery)
+16. [Waypoint: Target Even Numbered Elements Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Target-Even-Numbered-Elements-Using-jQuery)
+17. [Waypoint: Use jQuery to Modify the Entire Page](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-jQuery-to-Modify-the-Entire-Page)
+
+# Basic JavaScript
+1. [Waypoint: Comment your JavaScript Code](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Comment-your-JavaScript-Code)
+2. [Waypoint: Understand Boolean Values](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Understand-Boolean-Values)
+3. [Waypoint: Declare JavaScript Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Declare-JavaScript-Variables)
+4. [Waypoint: Declare String Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Declare-String-Variables)
+5. [Waypoint: Check the Length Property of a String Variable](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Check-the-Length-Property-of-a-String-Variable)
+6. [Waypoint: Use Bracket Notation to Find the First Character in a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Bracket-Notation-to-Find-the-First-Character-in-a-String)
+7. [Waypoint: Use Bracket Notation to Find the Nth Character in a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Bracket-Notation-to-Find-the-Nth-Character-in-a-String)
+8. [Waypoint: Use Bracket Notation to Find the Last Character in a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Bracket-Notation-to-Find-the-Last-Character-in-a-String)
+9. [Waypoint: Use Bracket Notation to Find the Nth-to-Last Character in a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Bracket-Notation-to-Find-the-Nth-to-Last-Character-in-a-String)
+10. [Waypoint: Add Two Numbers with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-Two-Numbers-with-JavaScript)
+11. [Waypoint: Subtract One Number from Another with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Subtract-One-Number-from-Another-with-JavaScript)
+12. [Waypoint: Multiply Two Numbers with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Multiply-Two-Numbers-with-JavaScript)
+13. [Waypoint: Divide One Number by Another with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Divide-One-Number-by-Another-with-JavaScript)
+14. [Waypoint: Create Decimal Numbers with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-Decimal-Numbers-with-JavaScript)
+15. [Waypoint: Perform Arithmetic Operations on Decimals with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Perform-Arithmetic-Operations-on-Decimals-with-JavaScript)
+16. [Waypoint: Store Multiple Values in one Variable using JavaScript Arrays](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Store-Multiple-Values-in-one-Variable-using-JavaScript-Arrays)
+17. [Waypoint: Nest one Array within Another Array](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Nest-one-Array-within-Another-Array)
+18. [Waypoint: Access Array Data with Indexes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Access-Array-Data-with-Indexes)
+19. [Waypoint: Modify Array Data With Indexes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Modify-Array-Data-With-Indexes)
+20. [Waypoint: Manipulate Arrays With pop()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Manipulate-Arrays-With-pop())
+21. [Waypoint: Manipulate Arrays With push()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Manipulate-Arrays-With-push())
+22. [Waypoint: Manipulate Arrays With shift()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Manipulate-Arrays-With-shift())
+23. [Waypoint: Manipulate Arrays With unshift()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Manipulate-Arrays-With-unshift())
+24. [Waypoint: Write Reusable JavaScript with Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Write-Reusable-JavaScript-with-Functions)
+25. [Waypoint: Build JavaScript Objects](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Build-JavaScript-Objects)
+26. [Waypoint: Manipulate JavaScript Objects](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Manipulate-JavaScript-Objects)
+27. [Waypoint: Iterate with JavaScript For Loops](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Iterate-with-JavaScript-For-Loops)
+28. [Waypoint: Iterate with JavaScript While Loops](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Iterate-with-JavaScript-While-Loops)
+29. [Waypoint: Generate Random Fractions with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Generate-Random-Fractions-with-JavaScript)
+30. [Waypoint: Generate Random Whole Numbers with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Generate-Random-Whole-Numbers-with-JavaScript)
+31. [Waypoint: Generate Random Whole Numbers within a Range](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Generate-Random-Whole-Numbers-within-a-Range)
+32. [Waypoint: Use Conditional Logic with If-Else Statements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Conditional-Logic-with-If-Else-Statements)
+33. [Waypoint: Sift through Text with Regular Expressions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Sift-through-Text-with-Regular-Expressions)
+34. [Waypoint: Find Numbers with Regular Expressions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Find-Numbers-with-Regular-Expressions)
+35. [Waypoint: Find White Space with Regular Expressions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Find-White-Space-with-Regular-Expressions)
+36. [Waypoint: Invert Regular Expression Matches with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Invert-Regular-Expression-Matches-with-JavaScript)
+37. [Waypoint: Create a JavaScript Slot Machine](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Create-a-JavaScript-Slot-Machine)
+38. [Waypoint: Add your JavaScript Slot Machine Slots](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Add-your-JavaScript-Slot-Machine-Slots)
+39. [Waypoint: Bring your JavaScript Slot Machine to Life](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Bring-your-JavaScript-Slot-Machine-to-Life)
+40. [Waypoint: Give your JavaScript Slot Machine some stylish images](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Give-your-JavaScript-Slot-Machine-some-stylish-images)
+
+# Object Oriented and Functional Programming
+1. [Waypoint: Declare JavaScript Objects as Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Declare-JavaScript-Objects-as-Variables)
+2. [Waypoint: Construct JavaScript Objects with Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Construct-JavaScript-Objects-with-Functions)
+3. [Waypoint: Make Object Properties Private](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Make-Object-Properties-Private)
+4. [Waypoint: Make Instances of Objects with a Constructor Function](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Make-Instances-of-Objects-with-a-Constructor-Function)
+5. [Waypoint: Iterate over Arrays with .map](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Iterate-over-Arrays-with-map)
+6. [Waypoint: Condense arrays with .reduce](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Condense-arrays-with-reduce)
+7. [Waypoint: Filter Arrays with .filter](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Filter-Arrays-with-filter)
+8. [Waypoint: Sort Arrays with .sort](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Sort-Arrays-with-sort)
+9. [Waypoint: Reverse Arrays with .reverse](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Reverse-Arrays-with-reverse)
+10. [Waypoint: Concatenate Strings with .concat](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Concatenate-Strings-with-.concat)
+11. [Waypoint: Split Strings with .split](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Split-Strings-with-split)
+12. [Waypoint: Join Strings with .join](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Join-Strings-with-.join)
+
+# Basic Algorithm Scripting
+1. [Bonfire: Meet Bonfire](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Meet-Bonfire)
+2. [Bonfire: Reverse a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Reverse-a-String)
+3. [Bonfire: Factorialize a Number](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Factorialize-a-Number)
+4. [Bonfire: Check for Palindromes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Check-for-Palindromes)
+5. [Bonfire: Find the Longest Word in a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-find-the-longest-word-in-a-string)
+6. [Bonfire: Title Case a Sentence](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-title-case-a-sentence)
+7. [Bonfire: Return Largest Numbers in Arrays](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-return-largest-numbers-in-arrays)
+8. [Bonfire: Confirm the Ending](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Confirm-the-Ending)
+9. [Bonfire: Repeat a string repeat a string](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-repeat-a-string-repeat-a-string)
+10. [Bonfire: Truncate a string](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-truncate-a-string)
+11. [Bonfire: Chunky Monkey](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Chunky-Monkey)
+12. [Bonfire: Slasher Flick](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-slasher-flick)
+13. [Bonfire: Mutations](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-mutations)
+14. [Bonfire: Falsey Bouncer](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Falsy-Bouncer)
+15. [Bonfire: Seek and Destroy](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Seek-and-Destroy)
+16. [Bonfire: Where do I belong](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Where-do-I-belong)
+
+# Intermediate Algorithm Scripting
+1. [Bonfire: Sum All Numbers in a Range](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Sum-All-Numbers-in-a-Range)
+2. [Bonfire: Diff Two Arrays](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Diff-Two-Arrays)
+3. [Bonfire: Roman Numeral Converter](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-roman-numeral-converter)
+4. [Bonfire: Where art thou](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Where-art-thou)
+5. [Bonfire: Search and Replace](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Search-and-Replace)
+6. [Bonfire: Pig Latin](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Pig-Latin)
+7. [Bonfire: DNA Pairing](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-DNA-Pairing)
+8. [Bonfire: Missing letters](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Missing-letters)
+9. [Bonfire: Boo who](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Boo-who)
+10. [Bonfire: Sorted Union](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Sorted-Union)
+11. [Bonfire: Convert HTML Entities](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-convert-HTML-entities)
+12. [Bonfire: Spinal Tap Case](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Spinal-Tap-Case)
+13. [Bonfire: Sum All Odd Fibonacci Numbers](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-sum-all-odd-fibonacci-numbers)
+14. [Bonfire: Sum All Primes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-sum-all-primes)
+15. [Bonfire: Smallest Common Multiple](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Smallest-Common-Multiple)
+16. [Bonfire: Finders Keepers](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-finders-keepers)
+17. [Bonfire: Drop it](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Drop-it)
+18. [Bonfire: Steamroller](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-steamroller)
+19. [Bonfire: Binary Agents](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Binary-Agents)
+20. [Bonfire: Everything Be True](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Everything-be-True)
+21. [Bonfire: Arguments Optional](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Arguments-Optional)
+
+# Upper Intermediate Algorithm Scripting
+1. [Bonfire: Make a Person](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-make-a-person)
+2. [Bonfire: Map the Debris](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-map-the-debris)
+3. [Bonfire: Pairwise](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-pairwise)
+
+# Automated Testing and Debugging
+1. [Waypoint: Use the Javascript Console](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-the-Javascript-Console)
+2. [Waypoint: Using typeof](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Using-typeof)
+
+# Advanced Algorithm Scripting
+1. [Bonfire: Validate US Telephone Numbers](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Validate-US-Telephone-Numbers)
+2. [Bonfire: Symmetric Difference](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Symmetric-Difference)
+3. [Bonfire: Exact Change](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Exact-Change)
+4. [Bonfire: Inventory Update](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-inventory-update)
+5. [Bonfire: No repeats please](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/bonfire-no-repeats-please)
+6. [Bonfire: Friendly Date Ranges](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Friendly-Date-Ranges)
+
+# AngularJS
+1. Waypoint: Get Started with Angular.js
+2. Waypoint: Apply Angular.js Directives
+3. Waypoint: Power Forms with Angular.js
+4. Waypoint: Customize Angular.js Directives
+5. Waypoint: Create Angular.js Services
+
+# Git
+1. Waypoint: Save your Code Revisions Forever with Git
+
+# Node.js and Express.js
+1. Waypoint: Manage Packages with NPM
+2. Waypoint: Start a Node.js Server
+3. Waypoint: Continue working with Node.js Servers
+4. Waypoint: Finish working with Node.js Servers
+5. Waypoint: Build Web Apps with Express.js
+
+# MongoDB
+1. Waypoint: Store Data in MongoDB
diff --git a/More-useful-APIs.md b/More-useful-APIs.md
index 5f33f37..68eccbc 100644
--- a/More-useful-APIs.md
+++ b/More-useful-APIs.md
@@ -1,31 +1,31 @@
-There are two more things you have to do before this to be useful to you, however. Say you want to show all the *things* associated with the username requested with that page: you must first  
- 
-1. Have a “username” or “owner” field in your *thing* schema at **/server/api/thing/thing.model.js**  
-2. Write a custom route in **/server/api/thing/index.js** to catch a request for a specific username. The request from your frontend might look something like:
-
-~~~javascript
- $http.get('/api/things/' + username).success( … 
-
-~~~
-so you’ll add a line into your **index.js** like:
-
-```javascript
-
-router.get('/:user', controller.indexUser);
-```  
-  and then in **thing.controller.js** you’ll write an *exports.indexUser* function like so:
-
-~~~javascript
-exports.indexUser = function(req, res) {
-	Thing.find({owner:req.params.user}, function (err, things) {
-		if(err) return res.send(500, err);
-		res.json(200, things);
-	});
-};
-~~~
-
-
-Warning!!! this method only works right if usernames are absolutely unique between users. The default authentication system that comes with the angular-fullstack generator does not have unique usernames, so you’re probably better off using the *user._id* field to determine unique users in your database for now, unless you want to implement unique user names yourself by altering your **/api/user/user.model.js**, **/api/user/user.controller.js**, and your **/app/client/account/signup/signup.controller.js**. Thankfully, you should know how to go about doing all that after reading this guide!
-
-[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Dynamic-URLs-using-%24routeParams)
+There are two more things you have to do before this to be useful to you, however. Say you want to show all the *things* associated with the username requested with that page: you must first  
+ 
+1. Have a “username” or “owner” field in your *thing* schema at **/server/api/thing/thing.model.js**  
+2. Write a custom route in **/server/api/thing/index.js** to catch a request for a specific username. The request from your frontend might look something like:
+
+~~~javascript
+ $http.get('/api/things/' + username).success( … 
+
+~~~
+so you’ll add a line into your **index.js** like:
+
+```javascript
+
+router.get('/:user', controller.indexUser);
+```  
+  and then in **thing.controller.js** you’ll write an *exports.indexUser* function like so:
+
+~~~javascript
+exports.indexUser = function(req, res) {
+	Thing.find({owner:req.params.user}, function (err, things) {
+		if(err) return res.send(500, err);
+		res.json(200, things);
+	});
+};
+~~~
+
+
+Warning!!! this method only works right if usernames are absolutely unique between users. The default authentication system that comes with the angular-fullstack generator does not have unique usernames, so you’re probably better off using the *user._id* field to determine unique users in your database for now, unless you want to implement unique user names yourself by altering your **/api/user/user.model.js**, **/api/user/user.controller.js**, and your **/app/client/account/signup/signup.controller.js**. Thankfully, you should know how to go about doing all that after reading this guide!
+
+[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Dynamic-URLs-using-%24routeParams)
 [NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Get-info-about-the-current-user)
\ No newline at end of file
diff --git a/October-2015-Improvements.md b/October-2015-Improvements.md
index ed1e686..fb218f7 100644
--- a/October-2015-Improvements.md
+++ b/October-2015-Improvements.md
@@ -1,61 +1,61 @@
-Our open source community has been hard at work throughout September on some major improvements. We're going to keep up this tempo, and do a special live stream for our first birthday (October 15, 2015). Here are the improvements we just pushed to production:
-
-###Certification
-* New challenges have appeared called "Claim your Front End Developer Certificate" and "Claim your Full Stack Developer Certificate".
-* We've built acceptance of our [Academic Honesty Policy](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Academic-Honesty-Policy) into these certificate challenges.
-* Certificates are issued programmatically once you meet their requirements. 
-* Certificates are available right from your Code Portfolio, and publicly viewable to all as long as you haven't hidden your solutions.
-* Each certificate has a unique verifiable URL that employers can check. This makes it is impossible to forge our certificates without access to our production servers.
-
-###Code Portfolios
-* All challenges and their solutions now show up on your code portfolio, including Waypoints.
-* You can hide your solutions from other people.
-
-###Unauthenticated Campers
-* You can complete all of our challenges without being hassled to log in.
-* Once you complete a challenge, you will be redirected to the next logical challenge, even if you aren't logged in.
-
-###Improved challenges
-* @berkeleytrue figured out a way to make all challenge solutions 100% sharable. You can copy a URL directly from your browser and share it with others, and they will be able to run your code against the challenge's tests. URLs update automatically when you run a challenge's tests.
-* We completely rewrote all Bonfire tests to be as transparent as possible. By popular request, we no longer show the Chai tests themselves - just a message clearly explaining what each test is testing.
-* By popular request, we added gif-style challenges, and are replacing our video-style challenges with these. All of our old videos will remain available on our [YouTube channel](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ?sub_confirmation=1).
-
-###Wiki improvements
-* @rafase282 has nearly finished creating [notes for every single challenge in Free Code Camp's curriculum](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Map), including hints and solutions.
-* @codenonprofit has started creating "portal" style wiki articles that serve as better entry points into our tangle of 400+ articles.
-
-###Resolved experiments
-* Plug.dj shut down, and our plug.dj room with it. Some of our campers are working on building an open source music app to replace it.
-* We delisted several low-traffic casual Gitter rooms from our wiki and created a catch-all [Casual chat room](https://gitter.im/freecodecamp/casual) for non-coding-related chat.
-* We now recommend campers use their Campsite’s Facebook group for chatting instead of their campsite’s Gitter chatroom. Only a few of our Campsite Gitter chatroooms had active synchronous discussions, and about 1/3rd of all conversations consisted of someone saying “hello” and not getting a response. We’ve delisted all our Campsite Gitter rooms from our Campsite directory. Still, we will keep them open for archival purposes, and you can keep using it if you’d like. Here’s a short [blog post](http://blog.freecodecamp.com/2015/09/jump-start-your-local-campsite-with-coffee-and-code.html) about how our Campsites are evolving and growing.
-
-###Other exciting developments
-* We just launched our first-ever [t-shirt campaign](https://teespring.com/get-free-code-camp-t-shirt) and added a second campaign for [EU fulfillment](https://teespring.com/free-code-camp-shirt-eu).
-* We just launched Commit. Rather than going into detail on it here, read [@codenonprofit's blog post](http://blog.freecodecamp.com/2015/10/commit-to-yourself-commit-to-nonprofit.html).
-* We launched [Free Code Camp Labs](http://freecodecamp.com/labs) to showcase some unique projects our campers are building.
-* We started gathering [Stories from campers](http://freecodecamp.com/stories) and putting them all in one place. These are just a fraction of the campers who've advanced their careers and gotten coding jobs after learning with Free Code Camp, but it's a pretty representative sample.
-
-###Improvements coming in the next few weeks:
-* A clickable hint button on each challenge that cycles through a series of increasingly helpful hints.
-* Recommended solutions that you can compare your solution with once you complete each challenge.
-* We'll re-record some of our dated-looking gifs.
-* We'll finish the Get Set for Basejumps with Clementine.js (gif-style challenge)
-* We'll finish the new Get Set for Ziplines (gif-style challenge)
-* We'll move all Zipline and Basejump challenges to gif-style.
-* We'll add a back button to our gif-style challenges.
-* We'll launch our job board.
-* We'll publish several new JSON API and AJAX-related challenges
-* We'll finish a leaderboard creation mechanic designed for teachers to track students and campers to track their friends.
-* We'll finish the Hikes interface (Hikes are Briana Swift's [computer science theory challenges](https://www.youtube.com/watch?v=q7tlgZg4Q1o&list=PLWKjhJtqVAbmfoj2Th9fvxhHIeqFO7wOy))
-* We'll close the ~30 pull requests that have piled up (thanks, contributors!)
-
-###And longer term goals we still haven't forgotten:
-* Support for major world languages ([translation is still underway](https://trello.com/b/m7zhwXka/fcc-translation))
-* Turning Free Code Camp into a single-page isomorphic app
-* Creating a browser-based replacement for Screen Hero / Team Viewer that is well suited to pairing on Free Code Camp.
-* React.js curriculum
-* D3.js curriculum and data visualization Ziplines
-
-##Our codebase is improving quickly. If you see something that looks funky or broken, please click that "bug" button and create a GitHub issue for us. Thanks for your patience and support.
-
+Our open source community has been hard at work throughout September on some major improvements. We're going to keep up this tempo, and do a special live stream for our first birthday (October 15, 2015). Here are the improvements we just pushed to production:
+
+###Certification
+* New challenges have appeared called "Claim your Front End Developer Certificate" and "Claim your Full Stack Developer Certificate".
+* We've built acceptance of our [Academic Honesty Policy](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Academic-Honesty-Policy) into these certificate challenges.
+* Certificates are issued programmatically once you meet their requirements. 
+* Certificates are available right from your Code Portfolio, and publicly viewable to all as long as you haven't hidden your solutions.
+* Each certificate has a unique verifiable URL that employers can check. This makes it is impossible to forge our certificates without access to our production servers.
+
+###Code Portfolios
+* All challenges and their solutions now show up on your code portfolio, including Waypoints.
+* You can hide your solutions from other people.
+
+###Unauthenticated Campers
+* You can complete all of our challenges without being hassled to log in.
+* Once you complete a challenge, you will be redirected to the next logical challenge, even if you aren't logged in.
+
+###Improved challenges
+* @berkeleytrue figured out a way to make all challenge solutions 100% sharable. You can copy a URL directly from your browser and share it with others, and they will be able to run your code against the challenge's tests. URLs update automatically when you run a challenge's tests.
+* We completely rewrote all Bonfire tests to be as transparent as possible. By popular request, we no longer show the Chai tests themselves - just a message clearly explaining what each test is testing.
+* By popular request, we added gif-style challenges, and are replacing our video-style challenges with these. All of our old videos will remain available on our [YouTube channel](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ?sub_confirmation=1).
+
+###Wiki improvements
+* @rafase282 has nearly finished creating [notes for every single challenge in Free Code Camp's curriculum](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Map), including hints and solutions.
+* @codenonprofit has started creating "portal" style wiki articles that serve as better entry points into our tangle of 400+ articles.
+
+###Resolved experiments
+* Plug.dj shut down, and our plug.dj room with it. Some of our campers are working on building an open source music app to replace it.
+* We delisted several low-traffic casual Gitter rooms from our wiki and created a catch-all [Casual chat room](https://gitter.im/freecodecamp/casual) for non-coding-related chat.
+* We now recommend campers use their Campsite’s Facebook group for chatting instead of their campsite’s Gitter chatroom. Only a few of our Campsite Gitter chatroooms had active synchronous discussions, and about 1/3rd of all conversations consisted of someone saying “hello” and not getting a response. We’ve delisted all our Campsite Gitter rooms from our Campsite directory. Still, we will keep them open for archival purposes, and you can keep using it if you’d like. Here’s a short [blog post](http://blog.freecodecamp.com/2015/09/jump-start-your-local-campsite-with-coffee-and-code.html) about how our Campsites are evolving and growing.
+
+###Other exciting developments
+* We just launched our first-ever [t-shirt campaign](https://teespring.com/get-free-code-camp-t-shirt) and added a second campaign for [EU fulfillment](https://teespring.com/free-code-camp-shirt-eu).
+* We just launched Commit. Rather than going into detail on it here, read [@codenonprofit's blog post](http://blog.freecodecamp.com/2015/10/commit-to-yourself-commit-to-nonprofit.html).
+* We launched [Free Code Camp Labs](http://freecodecamp.com/labs) to showcase some unique projects our campers are building.
+* We started gathering [Stories from campers](http://freecodecamp.com/stories) and putting them all in one place. These are just a fraction of the campers who've advanced their careers and gotten coding jobs after learning with Free Code Camp, but it's a pretty representative sample.
+
+###Improvements coming in the next few weeks:
+* A clickable hint button on each challenge that cycles through a series of increasingly helpful hints.
+* Recommended solutions that you can compare your solution with once you complete each challenge.
+* We'll re-record some of our dated-looking gifs.
+* We'll finish the Get Set for Basejumps with Clementine.js (gif-style challenge)
+* We'll finish the new Get Set for Ziplines (gif-style challenge)
+* We'll move all Zipline and Basejump challenges to gif-style.
+* We'll add a back button to our gif-style challenges.
+* We'll launch our job board.
+* We'll publish several new JSON API and AJAX-related challenges
+* We'll finish a leaderboard creation mechanic designed for teachers to track students and campers to track their friends.
+* We'll finish the Hikes interface (Hikes are Briana Swift's [computer science theory challenges](https://www.youtube.com/watch?v=q7tlgZg4Q1o&list=PLWKjhJtqVAbmfoj2Th9fvxhHIeqFO7wOy))
+* We'll close the ~30 pull requests that have piled up (thanks, contributors!)
+
+###And longer term goals we still haven't forgotten:
+* Support for major world languages ([translation is still underway](https://trello.com/b/m7zhwXka/fcc-translation))
+* Turning Free Code Camp into a single-page isomorphic app
+* Creating a browser-based replacement for Screen Hero / Team Viewer that is well suited to pairing on Free Code Camp.
+* React.js curriculum
+* D3.js curriculum and data visualization Ziplines
+
+##Our codebase is improving quickly. If you see something that looks funky or broken, please click that "bug" button and create a GitHub issue for us. Thanks for your patience and support.
+
 #Happy coding!
\ No newline at end of file
diff --git a/October-2015-Summit-Agenda.md b/October-2015-Summit-Agenda.md
index e3ae95e..0f123b7 100644
--- a/October-2015-Summit-Agenda.md
+++ b/October-2015-Summit-Agenda.md
@@ -1,8 +1,8 @@
-Our October 3, 2015 Summit will begin at noon EST on Saturday on [twitch.tv channel](http://twitch.tv/freecodecamp) and be available afterward on our [youtube channel](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ?sub_confirmation=1).
-
-During this 1 hour live stream, we'll:
-- launch our free Front End and Full Stack Development Certificate programs
-- demo our new, more comprehensive portfolio pages
-- demo a new way that all our campers can immediately start helping nonprofits
-- talk with camper Blake Johnston, who created the Clementine.js boilerplate that Free Code Camp will use for our full stack Basejump challenges
+Our October 3, 2015 Summit will begin at noon EST on Saturday on [twitch.tv channel](http://twitch.tv/freecodecamp) and be available afterward on our [youtube channel](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ?sub_confirmation=1).
+
+During this 1 hour live stream, we'll:
+- launch our free Front End and Full Stack Development Certificate programs
+- demo our new, more comprehensive portfolio pages
+- demo a new way that all our campers can immediately start helping nonprofits
+- talk with camper Blake Johnston, who created the Clementine.js boilerplate that Free Code Camp will use for our full stack Basejump challenges
 - launch our first-ever t-shirt campaign on teespring.com
\ No newline at end of file
diff --git a/Official-Free-Code-Camp-Chat-Rooms.md b/Official-Free-Code-Camp-Chat-Rooms.md
index 817d77a..8b4fe20 100644
--- a/Official-Free-Code-Camp-Chat-Rooms.md
+++ b/Official-Free-Code-Camp-Chat-Rooms.md
@@ -1,21 +1,21 @@
-The following are our official chat rooms.
-
-**Please note that all chat rooms listed here are publicly accessible and indexed by search engines, so only share email addresses or other sensitive information in private messages.**
-
-| Chat Room | Description |
-| --- | --- |
-| [FreeCodeCamp](https://gitter.im/freecodecamp/FreeCodeCamp) | our main chat room - hang out and chat about life and learning to code | 
-| [Help](https://gitter.im/freecodecamp/Help) | get help with our Waypoint challenges from your fellow campers | 
-| [HelpZiplines](https://gitter.im/freecodecamp/HelpZiplines) | get help with our Zipline challenges from your fellow campers | 
-| [HelpBonfires](https://gitter.im/freecodecamp/HelpBonfires) | get help with our Bonfire challenges from your fellow campers | 
-| [HelpBasejumps](https://gitter.im/freecodecamp/HelpBasejumps) | get help with our Basejump challenges from your fellow campers | 
-| [CodingJobs](https://gitter.im/freecodecamp/CodingJobs) | chat about the process of getting a coding job, such as portfolios, networking, and interviewing | 
-| [YouCanDoThis](https://gitter.im/freecodecamp/YouCanDoThis) | learning to code is hard - share your feelings and get moral support here | 
-| [PairProgrammingWomen](https://gitter.im/freecodecamp/PairProgrammingWomen) | this women-only chat room helps women talk coding with other women if they so desire |
-| [CodeReview](https://gitter.im/freecodecamp/CodeReview) | give and receive constructive feedback from your fellow campers on your projects | 
-| [Half Way Club](https://gitter.im/freecodecamp/HalfWayClub) | once you've earned your Full Stack Development Certification, prep for nonprofit projects here | 
-| [Casual](https://gitter.im/freecodecamp/Casual) | you can chat about your non-coding interests with other campers here |
-| [LiveCoding](https://gitter.im/freecodecamp/LiveCoding) | get set up to code live on our popular twitch.tv channel |
-| [CurriculumDevelopment](https://gitter.im/freecodecamp/CurriculumDevelopment) | help us improve our open source curriculum |
-| [DataScience](https://gitter.im/freecodecamp/DataScience) | help us understand our gigs and gigs of public data |
+The following are our official chat rooms.
+
+**Please note that all chat rooms listed here are publicly accessible and indexed by search engines, so only share email addresses or other sensitive information in private messages.**
+
+| Chat Room | Description |
+| --- | --- |
+| [FreeCodeCamp](https://gitter.im/freecodecamp/FreeCodeCamp) | our main chat room - hang out and chat about life and learning to code | 
+| [Help](https://gitter.im/freecodecamp/Help) | get help with our Waypoint challenges from your fellow campers | 
+| [HelpZiplines](https://gitter.im/freecodecamp/HelpZiplines) | get help with our Zipline challenges from your fellow campers | 
+| [HelpBonfires](https://gitter.im/freecodecamp/HelpBonfires) | get help with our Bonfire challenges from your fellow campers | 
+| [HelpBasejumps](https://gitter.im/freecodecamp/HelpBasejumps) | get help with our Basejump challenges from your fellow campers | 
+| [CodingJobs](https://gitter.im/freecodecamp/CodingJobs) | chat about the process of getting a coding job, such as portfolios, networking, and interviewing | 
+| [YouCanDoThis](https://gitter.im/freecodecamp/YouCanDoThis) | learning to code is hard - share your feelings and get moral support here | 
+| [PairProgrammingWomen](https://gitter.im/freecodecamp/PairProgrammingWomen) | this women-only chat room helps women talk coding with other women if they so desire |
+| [CodeReview](https://gitter.im/freecodecamp/CodeReview) | give and receive constructive feedback from your fellow campers on your projects | 
+| [Half Way Club](https://gitter.im/freecodecamp/HalfWayClub) | once you've earned your Full Stack Development Certification, prep for nonprofit projects here | 
+| [Casual](https://gitter.im/freecodecamp/Casual) | you can chat about your non-coding interests with other campers here |
+| [LiveCoding](https://gitter.im/freecodecamp/LiveCoding) | get set up to code live on our popular twitch.tv channel |
+| [CurriculumDevelopment](https://gitter.im/freecodecamp/CurriculumDevelopment) | help us improve our open source curriculum |
+| [DataScience](https://gitter.im/freecodecamp/DataScience) | help us understand our gigs and gigs of public data |
 By joining these chat rooms, you accept our [Code of Conduct](https://github.com/FreeCodeCamp/freecodecamp/wiki/Code-of-Conduct).
\ No newline at end of file
diff --git a/Other-resources-that-Free-Code-Camp-recommends-to-nonprofits.md b/Other-resources-that-Free-Code-Camp-recommends-to-nonprofits.md
index 9514b82..5266ec5 100644
--- a/Other-resources-that-Free-Code-Camp-recommends-to-nonprofits.md
+++ b/Other-resources-that-Free-Code-Camp-recommends-to-nonprofits.md
@@ -1,41 +1,41 @@
-Please note that Free Code Camp is not partnered with, nor do we receive a referral fee from, any of the following providers. We simply want to help guide you toward a solution for your organization.
-
-### Skills-based Volunteer Organizations:
-- [http://www.volunteermatch.com](http://www.volunteermatch.com) 
-- [http://www.catchafire.org](http://www.catchafire.org) 
-
-### Building a website: 
-- [http://www.wix.com/](http://www.wix.com/) 
-- [https://wordpress.com/](https://wordpress.com/) 
-- [Build it yourself for free with no code](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-to-deploy-a-website-without-writing-any-code-at-all) 
-- [XPRS - another tool for building websites for free with no code](https://xprs.imcreator.com)
-
-### Donor and Volunteer Management Systems 
-- [http://causesignal.com](http://causesignal.com) 
-- [https://www.thedatabank.com/](https://www.thedatabank.com/) 
-- [http://www.donorsnap.com/](http://www.donorsnap.com/) 
-- [http://www.donorperfect.com/](http://www.donorperfect.com/) 
-- [https://www.blackbaud.com/fundraising-crm/etapestry-donor-management](https://www.blackbaud.com/fundraising-crm/etapestry-donor-management) 
-- [http://www.z2systems.com](http://www.z2systems.com/) 
-- [http://www.regpacks.com/volunteer-management](http://www.regpacks.com/volunteer-management/) 
-- [http://sumac.com](http://sumac.com/) 
-- [http://www.volgistics.com](http://www.volgistics.com) 
-
-### Inventory Management Systems 
-- [https://www.ezofficeinventory.com/industries/non-profits](https://www.ezofficeinventory.com/industries/non-profits) 
-- [https://www.ordoro.com](https://www.ordoro.com) 
-- [http://www.unleashedsoftware.com](http://www.unleashedsoftware.com) 
-
-### E-Learning platforms 
-- [http://www.dokeos.com](http://www.dokeos.com/) 
-- [http://www.efrontlearning.net/](http://www.efrontlearning.net/) 
-- [https://moodle.org/](https://moodle.org/) 
-- [https://sakaiproject.org/](https://sakaiproject.org/) 
-
-### Community Management 
-- [https://civicrm.org/](https://civicrm.org/) 
-- [http://tcmgr.com/](http://tcmgr.com/) 
-
-### Electronic Forms 
-- [http://www.google.com/forms](http://www.google.com/forms) 
+Please note that Free Code Camp is not partnered with, nor do we receive a referral fee from, any of the following providers. We simply want to help guide you toward a solution for your organization.
+
+### Skills-based Volunteer Organizations:
+- [http://www.volunteermatch.com](http://www.volunteermatch.com) 
+- [http://www.catchafire.org](http://www.catchafire.org) 
+
+### Building a website: 
+- [http://www.wix.com/](http://www.wix.com/) 
+- [https://wordpress.com/](https://wordpress.com/) 
+- [Build it yourself for free with no code](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-to-deploy-a-website-without-writing-any-code-at-all) 
+- [XPRS - another tool for building websites for free with no code](https://xprs.imcreator.com)
+
+### Donor and Volunteer Management Systems 
+- [http://causesignal.com](http://causesignal.com) 
+- [https://www.thedatabank.com/](https://www.thedatabank.com/) 
+- [http://www.donorsnap.com/](http://www.donorsnap.com/) 
+- [http://www.donorperfect.com/](http://www.donorperfect.com/) 
+- [https://www.blackbaud.com/fundraising-crm/etapestry-donor-management](https://www.blackbaud.com/fundraising-crm/etapestry-donor-management) 
+- [http://www.z2systems.com](http://www.z2systems.com/) 
+- [http://www.regpacks.com/volunteer-management](http://www.regpacks.com/volunteer-management/) 
+- [http://sumac.com](http://sumac.com/) 
+- [http://www.volgistics.com](http://www.volgistics.com) 
+
+### Inventory Management Systems 
+- [https://www.ezofficeinventory.com/industries/non-profits](https://www.ezofficeinventory.com/industries/non-profits) 
+- [https://www.ordoro.com](https://www.ordoro.com) 
+- [http://www.unleashedsoftware.com](http://www.unleashedsoftware.com) 
+
+### E-Learning platforms 
+- [http://www.dokeos.com](http://www.dokeos.com/) 
+- [http://www.efrontlearning.net/](http://www.efrontlearning.net/) 
+- [https://moodle.org/](https://moodle.org/) 
+- [https://sakaiproject.org/](https://sakaiproject.org/) 
+
+### Community Management 
+- [https://civicrm.org/](https://civicrm.org/) 
+- [http://tcmgr.com/](http://tcmgr.com/) 
+
+### Electronic Forms 
+- [http://www.google.com/forms](http://www.google.com/forms) 
 - [http://www.typeform.com](http://www.typeform.com)
\ No newline at end of file
diff --git a/Pair-programming-and-why-it-is-special.md b/Pair-programming-and-why-it-is-special.md
index cd457ff..c8abfeb 100644
--- a/Pair-programming-and-why-it-is-special.md
+++ b/Pair-programming-and-why-it-is-special.md
@@ -1,13 +1,13 @@
-Pair Programming is an Agile Development practice that was born out of the **Extreme Programming** movement.
-
-Working as a team of [exactly] two, at a single computer, the pair will slide the keyboard and mouse back-and-forth throughout a "pairing session".  This increases the code quality by providing a "greater than the sum of its parts" effect of two developers working on a single problem domain.
-
-The increase in quality of the code, combined with the effect of knowledge and understanding on the project being spread across multiple developers, can produce a large savings in cost on the project as a whole.
-
-In a Test Driven Development (TDD) shop, it is most common for each member of the pair to take turns a) writing a test and b) writing code to pass the test.  This "ping pong" yields a cumulative effect on the overall quality of the final product.
-
-
-To be most effective it is important that pairs are intermixed; not the same couple of developers **always** working together. 
-
-Pair programming is considered to be very "social". It can be akin to a marriage because you learn to cooperate with a peer in a close, give-and-take relationship.  As such it is often very difficult to become comfortable with pair programming.  Some developers simply NEVER feel quite at-home.  In the end, the willingness to share, be a bit vulnerable and work cooperatively toward a better product will make you a far better developer (and a better person overall).
+Pair Programming is an Agile Development practice that was born out of the **Extreme Programming** movement.
+
+Working as a team of [exactly] two, at a single computer, the pair will slide the keyboard and mouse back-and-forth throughout a "pairing session".  This increases the code quality by providing a "greater than the sum of its parts" effect of two developers working on a single problem domain.
+
+The increase in quality of the code, combined with the effect of knowledge and understanding on the project being spread across multiple developers, can produce a large savings in cost on the project as a whole.
+
+In a Test Driven Development (TDD) shop, it is most common for each member of the pair to take turns a) writing a test and b) writing code to pass the test.  This "ping pong" yields a cumulative effect on the overall quality of the final product.
+
+
+To be most effective it is important that pairs are intermixed; not the same couple of developers **always** working together. 
+
+Pair programming is considered to be very "social". It can be akin to a marriage because you learn to cooperate with a peer in a close, give-and-take relationship.  As such it is often very difficult to become comfortable with pair programming.  Some developers simply NEVER feel quite at-home.  In the end, the willingness to share, be a bit vulnerable and work cooperatively toward a better product will make you a far better developer (and a better person overall).
  
\ No newline at end of file
diff --git a/Programming-Fundamental.md b/Programming-Fundamental.md
index 07e1b33..e1e0fda 100644
--- a/Programming-Fundamental.md
+++ b/Programming-Fundamental.md
@@ -1,4 +1,4 @@
-> First do it, then do it right, then do it better. This is one fundamental I always keep in mind when developing anything.
-If you're a developer wishing to learn something new, regardless of skill-level, remember that as important as it is to read, it's equally as important to get out there and *do*.
-Create a new gist or JSBin, pop open the console and experiment. It's effing fun.
+> First do it, then do it right, then do it better. This is one fundamental I always keep in mind when developing anything.
+If you're a developer wishing to learn something new, regardless of skill-level, remember that as important as it is to read, it's equally as important to get out there and *do*.
+Create a new gist or JSBin, pop open the console and experiment. It's effing fun.
 &mdash; [Addy Osmani](http://addyosmani.com)
\ No newline at end of file
diff --git a/Promises.md b/Promises.md
index a909ec5..202091b 100644
--- a/Promises.md
+++ b/Promises.md
@@ -1,11 +1,11 @@
-A new feature of ES6 to help with async programming.
-
-## syntax
-```javascript
-new Promise(executor);
-new Promise(function(resolve, reject) { ... });
-```
-
-![MDN image](https://mdn.mozillademos.org/files/8633/promises.png)
-
+A new feature of ES6 to help with async programming.
+
+## syntax
+```javascript
+new Promise(executor);
+new Promise(function(resolve, reject) { ... });
+```
+
+![MDN image](https://mdn.mozillademos.org/files/8633/promises.png)
+
 read more at [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)
\ No newline at end of file
diff --git a/Pseudoclassical-class-definition-OOp.md b/Pseudoclassical-class-definition-OOp.md
index 37e2cf5..36bc6eb 100644
--- a/Pseudoclassical-class-definition-OOp.md
+++ b/Pseudoclassical-class-definition-OOp.md
@@ -1,38 +1,38 @@
-###Overview
-
-Pseudoclassical class definition happens in 2 code blocks instead of one, which happens in other languages like Python and PHP.
-
-The first block is called the "Constructor Function" which is where attributes of the class is declared. These are the aspects of the class that are unique to each new instance. Example with cars is that brand, color, and location can differ. In the second block of code you declare the methods that will be shared by each instance of the class. Examples are things the car can do, drive forward, stop, open door.
-
-### Example
-
-```javascript
-var Car = function(brand, color, location) {
- this.brand = brand;
- this.color = color;
- this.location = location
-};
-
-Car.prototype = {
- move: function() { this.location++; },
- stop: function() { this.location = 0; },
-};
-```
-
-###Explanation
-
-The reason for declaring the entire class in 2 blocks is to save on memory when you start creating instances of the class. If the class declaration was "Functional" style then there is a new copy of the method(s) made for **each** instance. By declaring the class "Pseudoclassical" style only a *single* of copy of the methods are stored in memory.
-
-When a instance of the class attempt to access a method:
-
-```javascript
-var x_car = new Car('lexus', 'white', 0);
-x_car.move();
-```
-
-The interpreter will actually *first* fail to find the called method in the object itself since it was made from the Car constructor function. As you can see above there is no reference to any of the methods in the Car constructor function. From there the interpreter searches to the `Car.prototype` which is now shared between all instances. There the interpreter find the method that was called!
-
-####Further reading: 
-[Natac's Blog](https://natacseanc.wordpress.com/2015/08/04/javascript-object-create-and-classes/)
-
+###Overview
+
+Pseudoclassical class definition happens in 2 code blocks instead of one, which happens in other languages like Python and PHP.
+
+The first block is called the "Constructor Function" which is where attributes of the class is declared. These are the aspects of the class that are unique to each new instance. Example with cars is that brand, color, and location can differ. In the second block of code you declare the methods that will be shared by each instance of the class. Examples are things the car can do, drive forward, stop, open door.
+
+### Example
+
+```javascript
+var Car = function(brand, color, location) {
+ this.brand = brand;
+ this.color = color;
+ this.location = location
+};
+
+Car.prototype = {
+ move: function() { this.location++; },
+ stop: function() { this.location = 0; },
+};
+```
+
+###Explanation
+
+The reason for declaring the entire class in 2 blocks is to save on memory when you start creating instances of the class. If the class declaration was "Functional" style then there is a new copy of the method(s) made for **each** instance. By declaring the class "Pseudoclassical" style only a *single* of copy of the methods are stored in memory.
+
+When a instance of the class attempt to access a method:
+
+```javascript
+var x_car = new Car('lexus', 'white', 0);
+x_car.move();
+```
+
+The interpreter will actually *first* fail to find the called method in the object itself since it was made from the Car constructor function. As you can see above there is no reference to any of the methods in the Car constructor function. From there the interpreter searches to the `Car.prototype` which is now shared between all instances. There the interpreter find the method that was called!
+
+####Further reading: 
+[Natac's Blog](https://natacseanc.wordpress.com/2015/08/04/javascript-object-create-and-classes/)
+
 [MDN Classes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript)
\ No newline at end of file
diff --git a/Pull-Request-Contribute.md b/Pull-Request-Contribute.md
index 80c2457..7398472 100644
--- a/Pull-Request-Contribute.md
+++ b/Pull-Request-Contribute.md
@@ -1,22 +1,22 @@
-> A (PR)pull request is a method of submitting contributions to an open source project. It is often the preferred way of submitting contributions to a project using a Distributed Version Control System (DVCS) such as Git.
-
-FreeCodeCamp is an Open Source project and all of the contents are freely editable.
-
-- [Fork](https://help.github.com/articles/fork-a-repo/) the project on GitHub.
-- [Clone](https://help.github.com/articles/cloning-a-repository/) it to a local machine.  Do not edit online in github.com, as the editor may cause issues with JSON formatted data.
-- [Create a branch](https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/) with the form `fix/some-bug` or `feature/add-cool-thing` and make your changes in that branch and commit them.
-- [Push](https://help.github.com/articles/pushing-to-a-remote/) the branch online (if editing locally).
-- [Create a pull request](https://help.github.com/articles/creating-a-pull-request/) against the **"staging"** branch.
-- The title (also called the subject) of your PR should be descriptive of your changes. i.e. `fix typo in basic-javascript challenge` 
-- If the PR is meant to fix a specific issue, append to the end of your PR's commit message `closes #1337`. This tells GitHub to close that issue if the PR is merged.
-- Do NOT add issue numbers to the PR's title. i.e. `minor improvements in basic-javascript challenge`
-
-These are general guidelines for PR's that work across most projects. It gives everyone a quick guide to your changes when looking at the commit history of a project. 
-
-*Note:  Not all pull requests are accepted. FCC project maintainers will explain the reason of non-acceptance.*
-
-## Further Reading
-* [GitHub & Git Foundations Training](https://www.youtube.com/playlist?list=PLg7s6cbtAD15G8lNyoaYDuKZSKyJrgwB-) - How to use Git and GitHub
-* [FreeCodeCamp Contribution Guidelines](https://github.com/FreeCodeCamp/FreeCodeCamp#contributing)
-* [How to write Git commit messages](http://chris.beams.io/posts/git-commit/)
+> A (PR)pull request is a method of submitting contributions to an open source project. It is often the preferred way of submitting contributions to a project using a Distributed Version Control System (DVCS) such as Git.
+
+FreeCodeCamp is an Open Source project and all of the contents are freely editable.
+
+- [Fork](https://help.github.com/articles/fork-a-repo/) the project on GitHub.
+- [Clone](https://help.github.com/articles/cloning-a-repository/) it to a local machine.  Do not edit online in github.com, as the editor may cause issues with JSON formatted data.
+- [Create a branch](https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/) with the form `fix/some-bug` or `feature/add-cool-thing` and make your changes in that branch and commit them.
+- [Push](https://help.github.com/articles/pushing-to-a-remote/) the branch online (if editing locally).
+- [Create a pull request](https://help.github.com/articles/creating-a-pull-request/) against the **"staging"** branch.
+- The title (also called the subject) of your PR should be descriptive of your changes. i.e. `fix typo in basic-javascript challenge` 
+- If the PR is meant to fix a specific issue, append to the end of your PR's commit message `closes #1337`. This tells GitHub to close that issue if the PR is merged.
+- Do NOT add issue numbers to the PR's title. i.e. `minor improvements in basic-javascript challenge`
+
+These are general guidelines for PR's that work across most projects. It gives everyone a quick guide to your changes when looking at the commit history of a project. 
+
+*Note:  Not all pull requests are accepted. FCC project maintainers will explain the reason of non-acceptance.*
+
+## Further Reading
+* [GitHub & Git Foundations Training](https://www.youtube.com/playlist?list=PLg7s6cbtAD15G8lNyoaYDuKZSKyJrgwB-) - How to use Git and GitHub
+* [FreeCodeCamp Contribution Guidelines](https://github.com/FreeCodeCamp/FreeCodeCamp#contributing)
+* [How to write Git commit messages](http://chris.beams.io/posts/git-commit/)
 * [How to Clone FCC to a Windows PC](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-to-clone-the-FreeCodeCamp-website-on-a-Windows-pc)
\ No newline at end of file
diff --git a/Quick-tip-keep-data-in-sync.md b/Quick-tip-keep-data-in-sync.md
index 1e930f7..876f626 100644
--- a/Quick-tip-keep-data-in-sync.md
+++ b/Quick-tip-keep-data-in-sync.md
@@ -1,27 +1,27 @@
-Say you want something to show up on the user view when you add it to the database. A new *thing* object will instantly show up in an *ng-repeat* loop in your HTML view if you simply add it to your local array with  
-
-~~~javascript
-
-$scope.awesomeThings.push(newThing);
-~~~
-
-But you’ll still need to add it to your database collection. Add it to your collection with  
-
-~~~javascript
-
-$http.post('/api/things', newThing);	
-
-~~~
-But wait! You’ll soon realize that while all the other things in your *$scope.awesomeThings* array have unique ids assigned by MongoDB (under the *thing.\_id* property), your *newThing* object will not, which will make it hard for you at some point to make database actions on it (deleting it from your database requires you to use its *._id* property). So what you’ll want to do after you add it to your *$scope.awesomeThings* array (because we want it to show up on the user’s page immediately). Altogether, your code to add a newThing to your local array and database will look like:
-
-~~~javascript
-$scope.awesomeThings.push(newThing);
-$http.post('/api/things', newThing).success(function(thatThingWeJustAdded) {
-	$scope.awesomeThings.pop(); // let's lose that id-lacking newThing 
-	$scope.awesomeThings.push(thatThingWeJustAdded); // and add the id-having newThing!
-};
-~~~
-This updates the local array for seemingly instant results for your user and then syncs it to your database and updates the local array in the background with the database’s version of your *newThing* object, unique *._id* and all. Notice the callback we pass to the *success* function receives the new *thing* back from the database as an argument! This way you can easily add it back to your local scope without too much overhead.
-
-[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Seed-data)
+Say you want something to show up on the user view when you add it to the database. A new *thing* object will instantly show up in an *ng-repeat* loop in your HTML view if you simply add it to your local array with  
+
+~~~javascript
+
+$scope.awesomeThings.push(newThing);
+~~~
+
+But you’ll still need to add it to your database collection. Add it to your collection with  
+
+~~~javascript
+
+$http.post('/api/things', newThing);	
+
+~~~
+But wait! You’ll soon realize that while all the other things in your *$scope.awesomeThings* array have unique ids assigned by MongoDB (under the *thing.\_id* property), your *newThing* object will not, which will make it hard for you at some point to make database actions on it (deleting it from your database requires you to use its *._id* property). So what you’ll want to do after you add it to your *$scope.awesomeThings* array (because we want it to show up on the user’s page immediately). Altogether, your code to add a newThing to your local array and database will look like:
+
+~~~javascript
+$scope.awesomeThings.push(newThing);
+$http.post('/api/things', newThing).success(function(thatThingWeJustAdded) {
+	$scope.awesomeThings.pop(); // let's lose that id-lacking newThing 
+	$scope.awesomeThings.push(thatThingWeJustAdded); // and add the id-having newThing!
+};
+~~~
+This updates the local array for seemingly instant results for your user and then syncs it to your database and updates the local array in the background with the database’s version of your *newThing* object, unique *._id* and all. Notice the callback we pass to the *success* function receives the new *thing* back from the database as an argument! This way you can easily add it back to your local scope without too much overhead.
+
+[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Seed-data)
 [NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Dynamic-URLs-using-$routeParams)
\ No newline at end of file
diff --git a/RTFM.md b/RTFM.md
index 8e98961..ce01519 100644
--- a/RTFM.md
+++ b/RTFM.md
@@ -1,16 +1,16 @@
-## RTFM comments generally useless
-> If everybody read the fine manual, most of the questions asked on the internet would go away!
-
-[RTFM](http://meta.stackexchange.com/a/167765)
-
-**"RTFM"** is **rude**, no doubt about it. However, **links to the manual in comments are perfectly acceptable**, and sometimes the only appropriate response to a question.
-
-So when posting a manual link, be smart. **Drop the RTFM and use nicer wording** so the link survives. Suggestions:
-
- - Check out the manual page: (link)
- - See the manual: (link)
- - This is explained in the manual: (link)
-
-If the OP was really lazy:
-
+## RTFM comments generally useless
+> If everybody read the fine manual, most of the questions asked on the internet would go away!
+
+[RTFM](http://meta.stackexchange.com/a/167765)
+
+**"RTFM"** is **rude**, no doubt about it. However, **links to the manual in comments are perfectly acceptable**, and sometimes the only appropriate response to a question.
+
+So when posting a manual link, be smart. **Drop the RTFM and use nicer wording** so the link survives. Suggestions:
+
+ - Check out the manual page: (link)
+ - See the manual: (link)
+ - This is explained in the manual: (link)
+
+If the OP was really lazy:
+
  - Your question is answered in the manual: (link) For future reference, please always remember to look in the manual first. Thanks!
\ No newline at end of file
diff --git a/Refresh-Your-Browser-Cache.md b/Refresh-Your-Browser-Cache.md
index 54f192d..df59662 100644
--- a/Refresh-Your-Browser-Cache.md
+++ b/Refresh-Your-Browser-Cache.md
@@ -1,10 +1,10 @@
-You may have to do a "hard refresh" of a page in your browser if you have an out of date, cached version of that website.
-
-While on the problematic site use the key combination below to trigger a hard refresh depending on your operating system:
-* Windows: CTRL + F5
-* Mac/Apple: Apple + Shift + R or Command + Shift + R
-* Linux: F5
-
-To learn more about this read: http://refreshyourcache.com/en/cache/
-
+You may have to do a "hard refresh" of a page in your browser if you have an out of date, cached version of that website.
+
+While on the problematic site use the key combination below to trigger a hard refresh depending on your operating system:
+* Windows: CTRL + F5
+* Mac/Apple: Apple + Shift + R or Command + Shift + R
+* Linux: F5
+
+To learn more about this read: http://refreshyourcache.com/en/cache/
+
 If a hard refresh doesn't work, try opening the problematic page in your browser's private browsing mode.
\ No newline at end of file
diff --git a/Registering-your-Nonprofit-to-Raise-Donations-through-Free-Code-Camp-Commit.md b/Registering-your-Nonprofit-to-Raise-Donations-through-Free-Code-Camp-Commit.md
index 1630e60..13b93dc 100644
--- a/Registering-your-Nonprofit-to-Raise-Donations-through-Free-Code-Camp-Commit.md
+++ b/Registering-your-Nonprofit-to-Raise-Donations-through-Free-Code-Camp-Commit.md
@@ -1,8 +1,8 @@
-Our commit program will feature a single nonprofit by default, and give campers the option of browsing through a list of other nonprofits they can pledge toward if they want. 
-
-If you'd like to be added to our list of nonprofits that our campers can commit to, please email us at team@freecodecamp.com with the following information:
-
-- the URL of a square photo of at least 300x300px that represents your organization (preferably an action shot of what your organization does with people in it)
-- a direct link to your donate page, or a page with a an embedded donation button (your donation page needs to have the option of recurring monthly payment, and allow increments of $5, $10, $25 and $50).
-
+Our commit program will feature a single nonprofit by default, and give campers the option of browsing through a list of other nonprofits they can pledge toward if they want. 
+
+If you'd like to be added to our list of nonprofits that our campers can commit to, please email us at team@freecodecamp.com with the following information:
+
+- the URL of a square photo of at least 300x300px that represents your organization (preferably an action shot of what your organization does with people in it)
+- a direct link to your donate page, or a page with a an embedded donation button (your donation page needs to have the option of recurring monthly payment, and allow increments of $5, $10, $25 and $50).
+
 If we accept you, we will give you a special URL that leads directly to your nonprofit's Commit page. You can share in your social media to spur people to pledge to your nonprofit through Free Code Camp Commit.
\ No newline at end of file
diff --git a/Restrict-a-page-to-authenticated-users.md b/Restrict-a-page-to-authenticated-users.md
index 2608f63..041d3ca 100644
--- a/Restrict-a-page-to-authenticated-users.md
+++ b/Restrict-a-page-to-authenticated-users.md
@@ -1,15 +1,15 @@
-Let's say you have a route that you want to restrict to logged-in users; maybe you have a <a href="#">/profile</a> page that lets your users fill in some information about themselves, but it wouldn't work if they weren't logged in. Open **/client/app/profile/profile.js**, and add `authenticate: true` to the options passed to *$routeProvider.when* like so:
-
-~~~javascript 
-    $routeProvider
-      .when('/profile', {
-        templateUrl: 'app/profile/profile.html',
-        controller: 'ProfileCtrl',
-        authenticate: true // restrict to authenticated users
-      });
-~~~
-
-This way, if the user isn't authenticated when they try to access the <A href="#">/profile</a> page, they'll be redirected to your login screen to authenticate before continuing to their profile page.
-
-[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Get-info-about-the-current-user)
+Let's say you have a route that you want to restrict to logged-in users; maybe you have a <a href="#">/profile</a> page that lets your users fill in some information about themselves, but it wouldn't work if they weren't logged in. Open **/client/app/profile/profile.js**, and add `authenticate: true` to the options passed to *$routeProvider.when* like so:
+
+~~~javascript 
+    $routeProvider
+      .when('/profile', {
+        templateUrl: 'app/profile/profile.html',
+        controller: 'ProfileCtrl',
+        authenticate: true // restrict to authenticated users
+      });
+~~~
+
+This way, if the user isn't authenticated when they try to access the <A href="#">/profile</a> page, they'll be redirected to your login screen to authenticate before continuing to their profile page.
+
+[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Get-info-about-the-current-user)
 [NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/isLoggedInAsync())
\ No newline at end of file
diff --git a/Searching-for-Your-Issue-on-Github.md b/Searching-for-Your-Issue-on-Github.md
index 0965ab7..d473ce7 100644
--- a/Searching-for-Your-Issue-on-Github.md
+++ b/Searching-for-Your-Issue-on-Github.md
@@ -1,9 +1,9 @@
-If you still see problems after [Getting Help on Gitter](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-to-Get-Help-on-Gitter), you will want to try to see if anyone else has posted about a similar problem.
-
-![gif walking through the subsequent steps to search GitHub for the issue](http://i.imgur.com/MdrSdQW.gif)
-
-1. Go to FreeCodeCamp's [Github Issues](https://github.com/FreeCodeCamp/FreeCodeCamp/issues) page.
-
-2. Use the search bar to search for already filed issues that may be related to your problem.
- * If you find one, read it! You can subscribe to get updates about that specific issue by clicking on `Subscribe` in the sidebar.  You can also comment on the issue if you have something to add.
+If you still see problems after [Getting Help on Gitter](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-to-Get-Help-on-Gitter), you will want to try to see if anyone else has posted about a similar problem.
+
+![gif walking through the subsequent steps to search GitHub for the issue](http://i.imgur.com/MdrSdQW.gif)
+
+1. Go to FreeCodeCamp's [Github Issues](https://github.com/FreeCodeCamp/FreeCodeCamp/issues) page.
+
+2. Use the search bar to search for already filed issues that may be related to your problem.
+ * If you find one, read it! You can subscribe to get updates about that specific issue by clicking on `Subscribe` in the sidebar.  You can also comment on the issue if you have something to add.
  * If you cannot find any relevant issues you should [Create a New Github Issue](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-New-Github-Issue).
\ No newline at end of file
diff --git a/Seed-data.md b/Seed-data.md
index dedb17e..6c4e273 100644
--- a/Seed-data.md
+++ b/Seed-data.md
@@ -1,6 +1,6 @@
-The *things* that show up on your app's main view are part of some seed data that is added to your database (including your test and admin users) every time you restart your app (by running `grunt serve` in the command line). This data is defined in **/server/config/seed.js**.  
-
-You can add, remove, or change data in this file, and it will be written to your database, overwriting any duplicates the next time you run `grunt serve`. If an object defined in **seed.js** is overwritten, the database will assign a new *.\_id* property to it (we'll cover *.\_id* properties in the next section), which may give you some issues later on in testing. To avoid this, you can turn off seeding by setting `seedDB: false` in **/server/config/environment/development.js**.
-
-[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Accessing-the-database-from-your-frontend)
+The *things* that show up on your app's main view are part of some seed data that is added to your database (including your test and admin users) every time you restart your app (by running `grunt serve` in the command line). This data is defined in **/server/config/seed.js**.  
+
+You can add, remove, or change data in this file, and it will be written to your database, overwriting any duplicates the next time you run `grunt serve`. If an object defined in **seed.js** is overwritten, the database will assign a new *.\_id* property to it (we'll cover *.\_id* properties in the next section), which may give you some issues later on in testing. To avoid this, you can turn off seeding by setting `seedDB: false` in **/server/config/environment/development.js**.
+
+[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Accessing-the-database-from-your-frontend)
 [NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Quick-tip:-keep-data-in-sync)
\ No newline at end of file
diff --git a/Select-Issues-for-Contributing-Using-Labels.md b/Select-Issues-for-Contributing-Using-Labels.md
index 3f073d8..f9124fa 100644
--- a/Select-Issues-for-Contributing-Using-Labels.md
+++ b/Select-Issues-for-Contributing-Using-Labels.md
@@ -1,38 +1,38 @@
-Interested in contributing to FreeCodeCamp (FCC)? Looking for an issue to work on, but not sure where to start? Issue labels can be your guide. These are labels (see table below) used to categorize the variety of issues submitted to FCC. The labels range from **bugs** to **questions** to **curriculum requests**. For example, if an issue has a ***Wiki*** label, you can create a Wiki article about that issue - after reading the [Wiki Style Guide](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Wiki-Style-Guide). 
-
-You can use labels to help you choose which issues to click on, rather than randomly clicking to find one of interest to you. Of course, you can work on and submit PRs for issues without labels. How ever you choose an issue, please be sure to read [Guidelines for Contributing](https://github.com/FreeCodeCamp/FreeCodeCamp/blob/staging/CONTRIBUTING.md) before submitting any pull requests.
-
-Check out the table below for the list of FreeCodeCamp issue labels, along with descriptions (work in progress). Thanks @bugron, @ahstro, @benschenker, for compiling this list of labels and descriptions.
-
-Note: The labels ***blocked***, ***confirmed***, and ***QA*** are also tied to [Waffle](https://waffle.io/freecodecamp/freecodecamp), a management system for FCC (GitHub) issues, and are automatically added and removed by it.
-
-| Label              | Description | 
-| ------------------ | ----------- | 
-| accessibility      | This is used for issues that don't necessarily break the site, but make it harder to use (like when tests used to evaluate while you typed would flicker the whole screen). Also, relevant to enabling the site to be usable for those who may have vision impairment or disabilities.|
-| accounts           | Camper has a problem with his/her FCC account, such as login problems, losing progress, or profile page is missing some solutions.|
-| beta               | The issue is related to FCC's beta site.|
-| blocked            | When an issue should not be worked on, due to waiting for the creator’s response, more information, or the issue is stale.|
-| bug                | Confirmed and reproducible bug in FCC's code and not only, for example, in Internet Explorer.
-| chrome             | The issue can only be reproduced in Google Chrome.|
-| confirmed          | The reported issue has been verified. (It basically says the issue creator has successfully communicated how to replicate the issue, but no one has started working toward a fix).|
-| curriculum request | Relates to everything that is requested to be added to current curriculum. The issue requests a new challenge, adding more explanation to a challenge, etc.|
-| device specific    | The issue presents only for a particular device (smartphone, tablet, desktop, etc).|
-| Discussing         | The issue is currently on discussion stage. |
-| duplicate          | The issue is a duplicate of another issue and most likely will be closed.|
-| easy               | This is used to flag issues that aren't critical, but should be easy for a camper to fix for their first couple of PRs. Think of these as the camper gateway to becoming a contributor. |
-| enhancement        | Similar to a Feature Request, but more related to improving existing features rather than adding new ones.|
-| feature request    | A request to add a feature to FCC. For example, ability to edit or remove bonfires from campers profile page.|
-| firefox            | The issue can only be reproduced in Mozilla Firefox.|
-| help wanted        | Owners or issue moderators need campers’ help to investigate or fix the issue.|
-| hikes              | The issue is related to Hikes (they are currently not available in curriculum).|
-| ie/edge            | The issue can only be reproduced in Internet Explorer or Microsoft Edge. FCC officially supports only Google Chrome.|
-| in progress        | Someone is currently making a fix for the issue.|
-| QA                 | (Quality Assurance) When a fix has been submitted and it needs to be reviewed before merging.|
-| question           | The issue is a question.|
-| reactify           | Issues related to moving to reactjs.|
-| resolved           | The issue is resolved/fixed.|
-| tests              | The issue should be fixed with a test improvement, meaning someone needs to fix asserts.|
-| todo               | Something that needs to be done in future.|
-| ux                 | (User Experience) Similar to accessibility, but focuses on an issue where campers share their experience or with an issue that leads to a negative user experience. For example, tag is used when something may be too complicated or how to use a feature is difficult to understand.|
-| wiki               | Relates to FCC's GitHub Wiki articles. May be a request to create one. |
-| wontfix            | The issue is not fixable or will not be fixed in near future. An example of could be MS Edge browser support.|
+Interested in contributing to FreeCodeCamp (FCC)? Looking for an issue to work on, but not sure where to start? Issue labels can be your guide. These are labels (see table below) used to categorize the variety of issues submitted to FCC. The labels range from **bugs** to **questions** to **curriculum requests**. For example, if an issue has a ***Wiki*** label, you can create a Wiki article about that issue - after reading the [Wiki Style Guide](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Wiki-Style-Guide). 
+
+You can use labels to help you choose which issues to click on, rather than randomly clicking to find one of interest to you. Of course, you can work on and submit PRs for issues without labels. How ever you choose an issue, please be sure to read [Guidelines for Contributing](https://github.com/FreeCodeCamp/FreeCodeCamp/blob/staging/CONTRIBUTING.md) before submitting any pull requests.
+
+Check out the table below for the list of FreeCodeCamp issue labels, along with descriptions (work in progress). Thanks @bugron, @ahstro, @benschenker, for compiling this list of labels and descriptions.
+
+Note: The labels ***blocked***, ***confirmed***, and ***QA*** are also tied to [Waffle](https://waffle.io/freecodecamp/freecodecamp), a management system for FCC (GitHub) issues, and are automatically added and removed by it.
+
+| Label              | Description | 
+| ------------------ | ----------- | 
+| accessibility      | This is used for issues that don't necessarily break the site, but make it harder to use (like when tests used to evaluate while you typed would flicker the whole screen). Also, relevant to enabling the site to be usable for those who may have vision impairment or disabilities.|
+| accounts           | Camper has a problem with his/her FCC account, such as login problems, losing progress, or profile page is missing some solutions.|
+| beta               | The issue is related to FCC's beta site.|
+| blocked            | When an issue should not be worked on, due to waiting for the creator’s response, more information, or the issue is stale.|
+| bug                | Confirmed and reproducible bug in FCC's code and not only, for example, in Internet Explorer.
+| chrome             | The issue can only be reproduced in Google Chrome.|
+| confirmed          | The reported issue has been verified. (It basically says the issue creator has successfully communicated how to replicate the issue, but no one has started working toward a fix).|
+| curriculum request | Relates to everything that is requested to be added to current curriculum. The issue requests a new challenge, adding more explanation to a challenge, etc.|
+| device specific    | The issue presents only for a particular device (smartphone, tablet, desktop, etc).|
+| Discussing         | The issue is currently on discussion stage. |
+| duplicate          | The issue is a duplicate of another issue and most likely will be closed.|
+| easy               | This is used to flag issues that aren't critical, but should be easy for a camper to fix for their first couple of PRs. Think of these as the camper gateway to becoming a contributor. |
+| enhancement        | Similar to a Feature Request, but more related to improving existing features rather than adding new ones.|
+| feature request    | A request to add a feature to FCC. For example, ability to edit or remove bonfires from campers profile page.|
+| firefox            | The issue can only be reproduced in Mozilla Firefox.|
+| help wanted        | Owners or issue moderators need campers’ help to investigate or fix the issue.|
+| hikes              | The issue is related to Hikes (they are currently not available in curriculum).|
+| ie/edge            | The issue can only be reproduced in Internet Explorer or Microsoft Edge. FCC officially supports only Google Chrome.|
+| in progress        | Someone is currently making a fix for the issue.|
+| QA                 | (Quality Assurance) When a fix has been submitted and it needs to be reviewed before merging.|
+| question           | The issue is a question.|
+| reactify           | Issues related to moving to reactjs.|
+| resolved           | The issue is resolved/fixed.|
+| tests              | The issue should be fixed with a test improvement, meaning someone needs to fix asserts.|
+| todo               | Something that needs to be done in future.|
+| ux                 | (User Experience) Similar to accessibility, but focuses on an issue where campers share their experience or with an issue that leads to a negative user experience. For example, tag is used when something may be too complicated or how to use a feature is difficult to understand.|
+| wiki               | Relates to FCC's GitHub Wiki articles. May be a request to create one. |
+| wontfix            | The issue is not fixable or will not be fixed in near future. An example of could be MS Edge browser support.|
diff --git a/Slack.md b/Slack.md
index ab84076..be07126 100644
--- a/Slack.md
+++ b/Slack.md
@@ -1,9 +1,9 @@
-### Slack is a popular chatroom service that Free Code Camp outgrew
-
-![Free Code Camp's Slack usage stats](https://www.evernote.com/l/AHRvSgBsEqZMBqugb3gWNG9jSKhPT8Dj5FAB/image.png)
-
-As much as we enjoyed using this service, it is a poor fit for large open source communities. This said, many open source communities still use Slack, and Slack does nothing to discourage this practice.
-
-If you're curious, you can read about [Slack's false advertising and the debacle this caused in June 2015](http://blog.freecodecamp.com/2015/06/so-yeah-we-tried-slack-and-we-deeply-regretted-it.html).
-
+### Slack is a popular chatroom service that Free Code Camp outgrew
+
+![Free Code Camp's Slack usage stats](https://www.evernote.com/l/AHRvSgBsEqZMBqugb3gWNG9jSKhPT8Dj5FAB/image.png)
+
+As much as we enjoyed using this service, it is a poor fit for large open source communities. This said, many open source communities still use Slack, and Slack does nothing to discourage this practice.
+
+If you're curious, you can read about [Slack's false advertising and the debacle this caused in June 2015](http://blog.freecodecamp.com/2015/06/so-yeah-we-tried-slack-and-we-deeply-regretted-it.html).
+
 Free Code Camp now uses [Gitter](https://github.com/FreeCodeCamp/freecodecamp/wiki/Gitter).
\ No newline at end of file
diff --git a/Spanish-Translation-Terminology.md b/Spanish-Translation-Terminology.md
index ae9257d..028f910 100644
--- a/Spanish-Translation-Terminology.md
+++ b/Spanish-Translation-Terminology.md
@@ -1,59 +1,59 @@
-#Spanish terminology alignment
-
-Para evitar confusión para otros Campers necesitamos alinearnos todos los traductores con la misma terminología. Para ello, hemos creado una lista con las palabras más comúnes y las traducciones que hemos estado utilizando hasta ahora.
-
-Vale recalcar que todos los términos están abiertos a discusión. En caso se tenga que hacer algún cambio, nos pueden enviar un mensaje directo a través de Slack a @miya o @eabedrapo.
-
-##FCC terminology
-
-###Untranslated
-* Free Code Camp
-* Waypoint
-* Bonfire
-* Zipline
-* Basejump
-* Top menu buttons.
-* Camper
-* Full Stack
-* Bug
-
-
-##CS terminology
-
-###Untranslated
-* Hardware
-* Software
-* Bit
-* Byte
-* Front-end
-* Link
-* Framework
-* Query
-
-###Translated
-* Boolean Logic: Lógica Booleana
-* Loop: Búcle
-* Computer Science: Informática
-* Run (a program): Ejecutar
-* Click: Darle click
-* Responsive: Adaptable
-
-##General terminology
-
-###Translated
-* Non-profit: Empresas sin fines de lucro
-* Self-paced: Manejados a tu propio ritmo
-
-##HTML / CSS terminology
-
-###Non-Traslated
-* Web
-* Tests & challengeSeeds (they shouldn't be translated, at least for this first version).
-
-
-####To do
-Video para mostrar a otras personas como colaborar con la traducción y revisión de los archivos.
-
-####To discuss
-Género a usar? ejem: "Una de las mejores maneras de mantenerte **motivado** cuando estás aprendiendo..."
+#Spanish terminology alignment
+
+Para evitar confusión para otros Campers necesitamos alinearnos todos los traductores con la misma terminología. Para ello, hemos creado una lista con las palabras más comúnes y las traducciones que hemos estado utilizando hasta ahora.
+
+Vale recalcar que todos los términos están abiertos a discusión. En caso se tenga que hacer algún cambio, nos pueden enviar un mensaje directo a través de Slack a @miya o @eabedrapo.
+
+##FCC terminology
+
+###Untranslated
+* Free Code Camp
+* Waypoint
+* Bonfire
+* Zipline
+* Basejump
+* Top menu buttons.
+* Camper
+* Full Stack
+* Bug
+
+
+##CS terminology
+
+###Untranslated
+* Hardware
+* Software
+* Bit
+* Byte
+* Front-end
+* Link
+* Framework
+* Query
+
+###Translated
+* Boolean Logic: Lógica Booleana
+* Loop: Búcle
+* Computer Science: Informática
+* Run (a program): Ejecutar
+* Click: Darle click
+* Responsive: Adaptable
+
+##General terminology
+
+###Translated
+* Non-profit: Empresas sin fines de lucro
+* Self-paced: Manejados a tu propio ritmo
+
+##HTML / CSS terminology
+
+###Non-Traslated
+* Web
+* Tests & challengeSeeds (they shouldn't be translated, at least for this first version).
+
+
+####To do
+Video para mostrar a otras personas como colaborar con la traducción y revisión de los archivos.
+
+####To discuss
+Género a usar? ejem: "Una de las mejores maneras de mantenerte **motivado** cuando estás aprendiendo..."
 * "motivado o motivada" (ambos?)
\ No newline at end of file
diff --git a/Start-Here.md b/Start-Here.md
index 077f751..59b07ef 100644
--- a/Start-Here.md
+++ b/Start-Here.md
@@ -1,43 +1,43 @@
-## If you're new to Free Code Camp, or just new to the wiki, start here:
-
-### Curriculum
-
-* [What you will learn, and in what sequence you will learn it](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/What-you-will-learn,-and-in-what-sequence-you-will-learn-it)
-
-* [How long does Free Code Camp take?](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-Long-Free-Code-Camp-Takes)
-
-* [What are these brownie points?](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Brownie-Points)
-
-* [The Front End Development Certificate](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Free-Code-Camp-Front-End-Development-Certificate)
-
-* [The Full Stack Development Certificate](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Free-Code-Camp-Full-Stack-Development-Certificate)
-
-* [Guide to Basejumps](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Guide-to-Basejumps-Table-of-Contents)
-
-* [Basejump Resources](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Basejump-Resources)
-
-* [Why JavaScript?](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Why-does-Free-Code-Camp-use-JavaScript-instead-of-Ruby-or-Python)
-
-### Community
-
-* [Code of Conduct](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Code-of-Conduct)
-
-* [Camper News](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Camper-News)
-
-* [Campsites](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Campsites)
-
-* [Official Chat Rooms](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Official-Free-Code-Camp-Chat-Rooms)
-
-* [How to use CamperBot](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/camperbot)
-
-* [Join the LinkedIn Community and Find Alumni](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-to-add-Free-Code-Camp-to-my-LinkedIn-profile)
-
-* [Stream your Coding Session on our Twitch.tv page](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-you-can-stream-your-live-coding-sessions-on-the-Free-Code-Camp-Twitch.tv-channel)
-
-### Nonprofit 
-
-* [How Nonprofit Projects Work](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-FreeCodeCamp-Nonprofit-Projects-work)
-
-* [Natural Language Requirements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Free-Code-Camp-completion-language-requirements)
-
+## If you're new to Free Code Camp, or just new to the wiki, start here:
+
+### Curriculum
+
+* [What you will learn, and in what sequence you will learn it](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/What-you-will-learn,-and-in-what-sequence-you-will-learn-it)
+
+* [How long does Free Code Camp take?](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-Long-Free-Code-Camp-Takes)
+
+* [What are these brownie points?](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Brownie-Points)
+
+* [The Front End Development Certificate](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Free-Code-Camp-Front-End-Development-Certificate)
+
+* [The Full Stack Development Certificate](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Free-Code-Camp-Full-Stack-Development-Certificate)
+
+* [Guide to Basejumps](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Guide-to-Basejumps-Table-of-Contents)
+
+* [Basejump Resources](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Basejump-Resources)
+
+* [Why JavaScript?](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Why-does-Free-Code-Camp-use-JavaScript-instead-of-Ruby-or-Python)
+
+### Community
+
+* [Code of Conduct](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Code-of-Conduct)
+
+* [Camper News](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Camper-News)
+
+* [Campsites](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Campsites)
+
+* [Official Chat Rooms](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Official-Free-Code-Camp-Chat-Rooms)
+
+* [How to use CamperBot](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/camperbot)
+
+* [Join the LinkedIn Community and Find Alumni](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-to-add-Free-Code-Camp-to-my-LinkedIn-profile)
+
+* [Stream your Coding Session on our Twitch.tv page](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-you-can-stream-your-live-coding-sessions-on-the-Free-Code-Camp-Twitch.tv-channel)
+
+### Nonprofit 
+
+* [How Nonprofit Projects Work](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-FreeCodeCamp-Nonprofit-Projects-work)
+
+* [Natural Language Requirements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Free-Code-Camp-completion-language-requirements)
+
 * [Resources that Free Code Camp recommends to Nonprofits Who Don't Qualify](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Other-resources-that-Free-Code-Camp-recommends-to-nonprofits)
\ No newline at end of file
diff --git a/Streaks.md b/Streaks.md
index e4ad4ca..57d46a7 100644
--- a/Streaks.md
+++ b/Streaks.md
@@ -1,5 +1,5 @@
-Your user profile displays your recent activity. If you get [Brownie Points](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Brownie-Points/) on several consecutive days, you will start a streak.
-
-![A picture of a camper's streak readout showing a 21-day streak](https://www.evernote.com/l/AlyDvfhZplROUZxyMN8dIGGd-DQT7Bn8S9oB/image.png)
-
+Your user profile displays your recent activity. If you get [Brownie Points](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Brownie-Points/) on several consecutive days, you will start a streak.
+
+![A picture of a camper's streak readout showing a 21-day streak](https://www.evernote.com/l/AlyDvfhZplROUZxyMN8dIGGd-DQT7Bn8S9oB/image.png)
+
 This shows everyone that you are highly active in our community, and that you code a lot. When you're learning to code, it's important that you [code at least some everyday](http://www.quora.com/How-does-one-become-a-great-coder/answer/Quincy-Larson).
\ No newline at end of file
diff --git a/Stream-Your-Coding-Sessions-on-Twitch.tv.md b/Stream-Your-Coding-Sessions-on-Twitch.tv.md
index ce3b364..118f23b 100644
--- a/Stream-Your-Coding-Sessions-on-Twitch.tv.md
+++ b/Stream-Your-Coding-Sessions-on-Twitch.tv.md
@@ -1,28 +1,28 @@
-Live streaming your code is an educational and invigorating experience for the streamer and the audience. If you've never seen live coding, check out the popular [twitch.tv channel](http://twitch.tv/freecodecamp). We are actively looking for more streamers of all levels to code JavaScript on the Free Code Camp channel.
-
-If you...
-* Want the immediate positive help and feedback of other coders
-* Aren't afraid to try something new
-* Code JavaScript, HTML, or CSS
-_you should give it a try!_
-
-
-
-**Please follow these steps to get started:**
-
-1. Get your computer set up to stream. This process varies depending on your operating system, and it usually involves downloading software to integrate with Twitch. Most Free Code Camp users use [OBS](https://obsproject.com/forum/resources/setting-up-obs-with-twitch.117/), but you can find all of the supported software on [Twitch's site](http://www.twitch.tv/broadcast). Another helpful tutorial connecting OBS and Twitch can be found [here](http://www.hdpvrcapture.com/wordpress/?p=5951).
-
-2. Contact Briana via [gitter](https://gitter.im/septimus) or [twitter](https://twitter.com/brianamarie132). She can help you get the stream key to get set up on the Free Code Camp Channel. 
-
-3. Have fun streaming! 
-
-**General rules/guidelines:**
-* JavaScript, HTML, and CSS only (including libraries and frameworks of course).
-* Language and content must be safe-for-work.
-* Before streaming, check the channel to see if someone's already up and give a heads up about your plan to stream in the [Twitch.tv chat room on gitter](https://gitter.im/FreeCodeCamp/LiveCoding).
-* Please use a webcam at the same time - the audience wants to see you!
-* Use the chat room almost as a pair-programmer. Interact as much as possible and work together for best results.
-* Think out-loud as much as possible so that your viewers can understand what you're thinking and doing.
-* No music please. If you need music while you code, use earbuds so it's not on the stream. 
-
+Live streaming your code is an educational and invigorating experience for the streamer and the audience. If you've never seen live coding, check out the popular [twitch.tv channel](http://twitch.tv/freecodecamp). We are actively looking for more streamers of all levels to code JavaScript on the Free Code Camp channel.
+
+If you...
+* Want the immediate positive help and feedback of other coders
+* Aren't afraid to try something new
+* Code JavaScript, HTML, or CSS
+_you should give it a try!_
+
+
+
+**Please follow these steps to get started:**
+
+1. Get your computer set up to stream. This process varies depending on your operating system, and it usually involves downloading software to integrate with Twitch. Most Free Code Camp users use [OBS](https://obsproject.com/forum/resources/setting-up-obs-with-twitch.117/), but you can find all of the supported software on [Twitch's site](http://www.twitch.tv/broadcast). Another helpful tutorial connecting OBS and Twitch can be found [here](http://www.hdpvrcapture.com/wordpress/?p=5951).
+
+2. Contact Briana via [gitter](https://gitter.im/septimus) or [twitter](https://twitter.com/brianamarie132). She can help you get the stream key to get set up on the Free Code Camp Channel. 
+
+3. Have fun streaming! 
+
+**General rules/guidelines:**
+* JavaScript, HTML, and CSS only (including libraries and frameworks of course).
+* Language and content must be safe-for-work.
+* Before streaming, check the channel to see if someone's already up and give a heads up about your plan to stream in the [Twitch.tv chat room on gitter](https://gitter.im/FreeCodeCamp/LiveCoding).
+* Please use a webcam at the same time - the audience wants to see you!
+* Use the chat room almost as a pair-programmer. Interact as much as possible and work together for best results.
+* Think out-loud as much as possible so that your viewers can understand what you're thinking and doing.
+* No music please. If you need music while you code, use earbuds so it's not on the stream. 
+
 Please contact Briana via [gitter](https://gitter.im/septimus) or [twitter](https://twitter.com/brianamarie132) and get started today! 
\ No newline at end of file
diff --git a/Stuck-getting-started-on-Zipline:-Build-a-personal-profile..md b/Stuck-getting-started-on-Zipline:-Build-a-personal-profile..md
deleted file mode 100644
index a7bc3d9..0000000
--- a/Stuck-getting-started-on-Zipline:-Build-a-personal-profile..md
+++ /dev/null
@@ -1,6 +0,0 @@
-I found this zipline to be a big stumbling block for me. I would of quit but I struggled on! Go Greg! I'm still at the beginning stages but have came across two resources that helped me in the right direction.
-http://www.w3schools.com/bootstrap/bootstrap_scrollspy.asp
-and
-http://www.w3schools.com/css/css_background.asp
-
-hope they can help get you started.
\ No newline at end of file
diff --git a/Test-issue-with-Bonfire-truncate-a-string.md b/Test-issue-with-Bonfire-truncate-a-string.md
index 964d3ff..f40d8f0 100644
--- a/Test-issue-with-Bonfire-truncate-a-string.md
+++ b/Test-issue-with-Bonfire-truncate-a-string.md
@@ -1,22 +1,22 @@
-Hi everyone,
-
-There is an issue with "Bonfire:Truncate a String". 
-First heres the code:
-```
-    function truncate(str, num) {
-  var truncd = '';
-  if (str.length > num) {
-    truncd = str.slice(0, num - 3) + '...';
-    return truncd;
-  }
-
-  return str;
-}
-truncate("A-tisket a-tasket A green and yellow basket", 1, "");
-```
-It should not pass the first test that is
-"A-tisket a-tasket A green and yellow basket", 1 should return "A-tisket..."
-
-According to this test the console should shoe "A-tisket..."but the console says"A-tisket a-tasket A green and yellow bask..."
-
+Hi everyone,
+
+There is an issue with "Bonfire:Truncate a String". 
+First heres the code:
+```
+    function truncate(str, num) {
+  var truncd = '';
+  if (str.length > num) {
+    truncd = str.slice(0, num - 3) + '...';
+    return truncd;
+  }
+
+  return str;
+}
+truncate("A-tisket a-tasket A green and yellow basket", 1, "");
+```
+It should not pass the first test that is
+"A-tisket a-tasket A green and yellow basket", 1 should return "A-tisket..."
+
+According to this test the console should shoe "A-tisket..."but the console says"A-tisket a-tasket A green and yellow bask..."
+
 but to my surprise it still passed... I hope I will get an explaination to this
\ No newline at end of file
diff --git a/The-main-advantages-of-Free-Code-Camp.md b/The-main-advantages-of-Free-Code-Camp.md
index 606e865..23060b3 100644
--- a/The-main-advantages-of-Free-Code-Camp.md
+++ b/The-main-advantages-of-Free-Code-Camp.md
@@ -1,7 +1,7 @@
-Free Code Camp's main advantages are that we're accessible to busy adults who want to change careers. 
-
-Specifically, we're:
-
-- Free
-- Self-paced
+Free Code Camp's main advantages are that we're accessible to busy adults who want to change careers. 
+
+Specifically, we're:
+
+- Free
+- Self-paced
 - Browser-based
\ No newline at end of file
diff --git a/Tips-on-How-To-Become-A-Good-Pair-Programmer.md b/Tips-on-How-To-Become-A-Good-Pair-Programmer.md
index 969b462..5ec5219 100644
--- a/Tips-on-How-To-Become-A-Good-Pair-Programmer.md
+++ b/Tips-on-How-To-Become-A-Good-Pair-Programmer.md
@@ -1,12 +1,12 @@
-Pair programming is a great way to learn programming! [Read why.](https://github.com/FreeCodeCamp/freecodecamp/wiki/Why-You-Should-Try-Pair-Programming)
-
-1. **Communicate well with your partner.** Voice chat will make communication easy, let you focus on learning, and will allow you to use your time effectively.
-
-2. **Before you start coding:** decide together with your partner how your workflow should look so that both you and your partner can benefit from the time spent coding. An example of a good workflow:
-    - Read through and discuss the problem to make sure you understand it.
-    - Solve the problem with pseudo-code by identifying the steps you need to take in order to get from the given inputs to the expected result.
-    - Create your actual solution
-
-3. **When explaining things:** Ask questions to guide your partner's thoughts instead of just showing the answer right away. This will let him or her think about the problem and make it easier for them to learn.
-
+Pair programming is a great way to learn programming! [Read why.](https://github.com/FreeCodeCamp/freecodecamp/wiki/Why-You-Should-Try-Pair-Programming)
+
+1. **Communicate well with your partner.** Voice chat will make communication easy, let you focus on learning, and will allow you to use your time effectively.
+
+2. **Before you start coding:** decide together with your partner how your workflow should look so that both you and your partner can benefit from the time spent coding. An example of a good workflow:
+    - Read through and discuss the problem to make sure you understand it.
+    - Solve the problem with pseudo-code by identifying the steps you need to take in order to get from the given inputs to the expected result.
+    - Create your actual solution
+
+3. **When explaining things:** Ask questions to guide your partner's thoughts instead of just showing the answer right away. This will let him or her think about the problem and make it easier for them to learn.
+
 4. **Finally**, be *open to your partner's ideas*, *respect each other* and **have fun! :)**
\ No newline at end of file
diff --git a/Translating-Free-Code-Camp-into-Your-Native-Language.md b/Translating-Free-Code-Camp-into-Your-Native-Language.md
index 563a36a..7ddf450 100644
--- a/Translating-Free-Code-Camp-into-Your-Native-Language.md
+++ b/Translating-Free-Code-Camp-into-Your-Native-Language.md
@@ -1,5 +1,5 @@
-Our translation effort is driven by bilingual campers like you.
-
-First we plan to create wiki articles in your language for all of Free Code Camp's challenges. We plan to eventually incorporate these translations into Free Code Camp itself.
-
+Our translation effort is driven by bilingual campers like you.
+
+First we plan to create wiki articles in your language for all of Free Code Camp's challenges. We plan to eventually incorporate these translations into Free Code Camp itself.
+
 If you're are bilingual, and have time to help us, please join our [translation chat room](https://gitter.im/FreeCodeCamp/Translators).
\ No newline at end of file
diff --git a/Trying-to-understand-the-solution-for-FCCs-sorted-union-using-callback-function.md b/Trying-to-understand-the-solution-for-FCCs-sorted-union-using-callback-function.md
index 107ccef..d03c773 100644
--- a/Trying-to-understand-the-solution-for-FCCs-sorted-union-using-callback-function.md
+++ b/Trying-to-understand-the-solution-for-FCCs-sorted-union-using-callback-function.md
@@ -1,24 +1,24 @@
-Hopefully the following post is appropriate for this forum...
-
-      function unite(arr1, arr2, arr3) {
-        var merge = function(coll,item) {
-          if (coll.indexOf(item) < 0)
-            coll.push(item);
-          return coll;
-        };
-        //TODO this can be simplified
-        arr1 = arr2.reduce(merge, arr1);
-        arr1 = arr3.reduce(merge, arr1);
-        return arr1;
-      }
-      unite([1, 2, 3], [5, 2, 1, 4], [2, 1]);
-
-I've already submitted an answer for "Sorted Union" but it was without using "reduce", which uses a "callback function". The answer that I've found, shown above uses it.  
-
-I've spent several hours so far trying to understand where "merge" gets its arguments. I understand from reduce's prototype that its first argument is a callback function (which is merge in this case), and I get what a callback function is. And the callback function's arguments are supposedly: (previousValue, currentValue, index, array) when being called by "reduce", which steps, one-by-one, through the arrays somehow using merge. Maybe "item" matches up with being currentValue, but that's it.  
-
-I don't know where someone's supposed to learn this type of programming because there are no examples like it in "prototypes" and "callback functions" where arguments required seem to change depending on context.  
-
-I would greatly appreciate someone explaining the above example to me or at least where the heck I would learn to do what's apparently been done in this example.  
-
-**chris dot r dot lafave at gmail dot com**
+Hopefully the following post is appropriate for this forum...
+
+      function unite(arr1, arr2, arr3) {
+        var merge = function(coll,item) {
+          if (coll.indexOf(item) < 0)
+            coll.push(item);
+          return coll;
+        };
+        //TODO this can be simplified
+        arr1 = arr2.reduce(merge, arr1);
+        arr1 = arr3.reduce(merge, arr1);
+        return arr1;
+      }
+      unite([1, 2, 3], [5, 2, 1, 4], [2, 1]);
+
+I've already submitted an answer for "Sorted Union" but it was without using "reduce", which uses a "callback function". The answer that I've found, shown above uses it.  
+
+I've spent several hours so far trying to understand where "merge" gets its arguments. I understand from reduce's prototype that its first argument is a callback function (which is merge in this case), and I get what a callback function is. And the callback function's arguments are supposedly: (previousValue, currentValue, index, array) when being called by "reduce", which steps, one-by-one, through the arrays somehow using merge. Maybe "item" matches up with being currentValue, but that's it.  
+
+I don't know where someone's supposed to learn this type of programming because there are no examples like it in "prototypes" and "callback functions" where arguments required seem to change depending on context.  
+
+I would greatly appreciate someone explaining the above example to me or at least where the heck I would learn to do what's apparently been done in this example.  
+
+**chris dot r dot lafave at gmail dot com**
diff --git a/Twitch.md b/Twitch.md
index 5299a18..77306f9 100644
--- a/Twitch.md
+++ b/Twitch.md
@@ -1,7 +1,7 @@
-Free Code Camp uses Twitch.tv to broadcast live streams. These can be anything from live pair programming to their monthly Summit, where big news events and new developments are announced.
-
-All levels of coders are encouraged to stream on the Free Code Camp twitch channel. If this is something that would interest you, please contact Briana on [gitter](https://gitter.im/brianamarie) or on [twitter](https://twitter.com/brianamarie132).
-
-More information on how to stream can be found [here](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Stream-Your-Coding-Sessions-on-Twitch.tv).
-
+Free Code Camp uses Twitch.tv to broadcast live streams. These can be anything from live pair programming to their monthly Summit, where big news events and new developments are announced.
+
+All levels of coders are encouraged to stream on the Free Code Camp twitch channel. If this is something that would interest you, please contact Briana on [gitter](https://gitter.im/brianamarie) or on [twitter](https://twitter.com/brianamarie132).
+
+More information on how to stream can be found [here](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Stream-Your-Coding-Sessions-on-Twitch.tv).
+
 You can find the channel here: http://www.twitch.tv/freecodecamp
\ No newline at end of file
diff --git a/Using-Github-Pages-for-your-front-end-development-projects.md b/Using-Github-Pages-for-your-front-end-development-projects.md
index 1fc9151..9441caf 100644
--- a/Using-Github-Pages-for-your-front-end-development-projects.md
+++ b/Using-Github-Pages-for-your-front-end-development-projects.md
@@ -1,94 +1,94 @@
-@freecodecamp [asked me nicely](https://twitter.com/FreeCodeCamp/status/648707819965837312) to explain how I use github (and github pages) instead of codepen for my front-end projects. Here's the how and why of it, starting with why.
-
-## Benefits
-
-I love Codepen.io, it's a wonderful, easy-to-use tool for simple front-end experimentation. But as the fcc projects got more complex, I realized coding locally was going to save me a bunch of headaches. My text-editor and [codekit](https://incident57.com/codekit/) combo are just waaay faster.
-
-* Autocomplete
-* Compile everything (codepen was really dragging trying to compile Jade)
-* Better auto-refresh
-* Built in bower
-* Git versioning
-* Improved screen real-estate experience
-
-## Git to Github
-
-Since I'm already saving locally, and using git for version control, I figured might as well upload to Github. Plus, Github has a fantastic, free service for front-end projects called [Github Pages](https://pages.github.com/). Just update your repo and your changes are live.
-
-How it works is simple. Github checks if your repository has a branch called `gh-pages` and serves any code that's sitting in that branch. No back-end stuff here, but HTML, CSS and JS work like a charm.
-
-## Make it Work
-
-### First things first
-
-Let's make a new folder for your project. I'll use the [Camper News](http://freecodecamp.com/challenges/zipline-stylize-stories-on-camper-news) project as my example.
-
-Got to your work directory and make a new one. You can do this in the terminal (or not).
-
-![Project Directory](https://raw.githubusercontent.com/gkobilansky/campNews/gh-pages/images/Fullscreen_10_29_15__12_06_PM.png)
-
-Now, go into the project directory, and (for sure in the terminal this time) use the command `git init`. Note, this tutorial assumes [you have git installed](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git).
-
-Alright, awesome. Now we're ready to work.
-
-### Next steps
-
-Create some files in your campNews directory. I don't know, maybe an index.html and probably app.css and app.js, or whatever naming convention you prefer. Put your code in these files. Alright, now we're ready for our first commit. It takes **two steps**. 
-
-1. `git add -A` will prep all these new files and the new code inside them
-2. `git commit -m 'relevant message'` will commit all the work you've done to the branch you're currently on ('master' by default)
-
-### The key to this whole thing
-
-OK, so far we're still local. There's some stuff we gotta do to take our work and move it to github. It's at this point I like to switch branches. Remember - github only serves from gh-pages, and if you've followed along so far, your branch is called 'master'. Let's make a new (local) gh-pages branch.
-
-`git checkout -b gh-pages` will create it, copy all the work from master into gh-pages and switch me over to the branch. Phew.
-
-`git branch -d master` will get rid of the master branch. Sounds crazy I know, but what do we need it for? Just think of gh-pages as your NEW master branch.
-
-Now, `git add -A` and `git commit -m 'relevant message'` again, just in case. And be prepared to leave your editor and terminal and go online for the first time. 
-
-Go to your github profile and create a new repo. Name it something relevant, like campNews.
-
-![New Repo](https://raw.githubusercontent.com/gkobilansky/campNews/gh-pages/images/Fullscreen_10_29_15__12_49_PM.png)
-
-Once it's created, go in and grab the HTTPS clone URL. (Ignore the files in my screenshot, your repo will be empty at this point).
-
-![clone url](https://raw.githubusercontent.com/gkobilansky/campNews/gh-pages/images/Fullscreen_10_29_15__12_51_PM.png)
-
-### Putting it all together
-
-And you can leave the online world. Back to the terminal! Let's connect our local project to this github repo. All it takes is one command.
-
-`git remote add origin <server>` Just replace server with the HTTPS url you just copied. So my command looks like this:
-
-`git remote add origin https://github.com/gkobilansky/campNews.git`. 
-
-OK, so far we've:
-
-1. Created our project
-2. Versioned it in git
-3. Commited some changes
-4. Switched it to the 'gh-pages' branch
-5. Connected it to github
-
-### Last step!
-
-Push you project to github. Again, simple: 
-
-`git push origin gh-pages`
-
-That command will make sure your latest commits get uploaded to github. Once you've done this at least once, your project should be available http://*username*.github.io/*repository*, so for me it's [http://gkobilansky.github.io/campNews](http://gkobilansky.github.io/campNews).
-
-Once this is all done, the process just repeats itself:
-
-1. `git add -A`
-2. `git commit -m 'relevant message'`
-3. `git push origin gh-pages`
-
-Granted, steeper learning curve than codepen.io, but faster and more flexible once you get the hang of it.
-
-Happy coding!
-
-
-PS. Thanks to [this guide](http://rogerdudler.github.io/git-guide/) by Roger Dudler for keeping things simple.
+@freecodecamp [asked me nicely](https://twitter.com/FreeCodeCamp/status/648707819965837312) to explain how I use github (and github pages) instead of codepen for my front-end projects. Here's the how and why of it, starting with why.
+
+## Benefits
+
+I love Codepen.io, it's a wonderful, easy-to-use tool for simple front-end experimentation. But as the fcc projects got more complex, I realized coding locally was going to save me a bunch of headaches. My text-editor and [codekit](https://incident57.com/codekit/) combo are just waaay faster.
+
+* Autocomplete
+* Compile everything (codepen was really dragging trying to compile Jade)
+* Better auto-refresh
+* Built in bower
+* Git versioning
+* Improved screen real-estate experience
+
+## Git to Github
+
+Since I'm already saving locally, and using git for version control, I figured might as well upload to Github. Plus, Github has a fantastic, free service for front-end projects called [Github Pages](https://pages.github.com/). Just update your repo and your changes are live.
+
+How it works is simple. Github checks if your repository has a branch called `gh-pages` and serves any code that's sitting in that branch. No back-end stuff here, but HTML, CSS and JS work like a charm.
+
+## Make it Work
+
+### First things first
+
+Let's make a new folder for your project. I'll use the [Camper News](http://freecodecamp.com/challenges/zipline-stylize-stories-on-camper-news) project as my example.
+
+Got to your work directory and make a new one. You can do this in the terminal (or not).
+
+![Project Directory](https://raw.githubusercontent.com/gkobilansky/campNews/gh-pages/images/Fullscreen_10_29_15__12_06_PM.png)
+
+Now, go into the project directory, and (for sure in the terminal this time) use the command `git init`. Note, this tutorial assumes [you have git installed](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git).
+
+Alright, awesome. Now we're ready to work.
+
+### Next steps
+
+Create some files in your campNews directory. I don't know, maybe an index.html and probably app.css and app.js, or whatever naming convention you prefer. Put your code in these files. Alright, now we're ready for our first commit. It takes **two steps**. 
+
+1. `git add -A` will prep all these new files and the new code inside them
+2. `git commit -m 'relevant message'` will commit all the work you've done to the branch you're currently on ('master' by default)
+
+### The key to this whole thing
+
+OK, so far we're still local. There's some stuff we gotta do to take our work and move it to github. It's at this point I like to switch branches. Remember - github only serves from gh-pages, and if you've followed along so far, your branch is called 'master'. Let's make a new (local) gh-pages branch.
+
+`git checkout -b gh-pages` will create it, copy all the work from master into gh-pages and switch me over to the branch. Phew.
+
+`git branch -d master` will get rid of the master branch. Sounds crazy I know, but what do we need it for? Just think of gh-pages as your NEW master branch.
+
+Now, `git add -A` and `git commit -m 'relevant message'` again, just in case. And be prepared to leave your editor and terminal and go online for the first time. 
+
+Go to your github profile and create a new repo. Name it something relevant, like campNews.
+
+![New Repo](https://raw.githubusercontent.com/gkobilansky/campNews/gh-pages/images/Fullscreen_10_29_15__12_49_PM.png)
+
+Once it's created, go in and grab the HTTPS clone URL. (Ignore the files in my screenshot, your repo will be empty at this point).
+
+![clone url](https://raw.githubusercontent.com/gkobilansky/campNews/gh-pages/images/Fullscreen_10_29_15__12_51_PM.png)
+
+### Putting it all together
+
+And you can leave the online world. Back to the terminal! Let's connect our local project to this github repo. All it takes is one command.
+
+`git remote add origin <server>` Just replace server with the HTTPS url you just copied. So my command looks like this:
+
+`git remote add origin https://github.com/gkobilansky/campNews.git`. 
+
+OK, so far we've:
+
+1. Created our project
+2. Versioned it in git
+3. Commited some changes
+4. Switched it to the 'gh-pages' branch
+5. Connected it to github
+
+### Last step!
+
+Push you project to github. Again, simple: 
+
+`git push origin gh-pages`
+
+That command will make sure your latest commits get uploaded to github. Once you've done this at least once, your project should be available http://*username*.github.io/*repository*, so for me it's [http://gkobilansky.github.io/campNews](http://gkobilansky.github.io/campNews).
+
+Once this is all done, the process just repeats itself:
+
+1. `git add -A`
+2. `git commit -m 'relevant message'`
+3. `git push origin gh-pages`
+
+Granted, steeper learning curve than codepen.io, but faster and more flexible once you get the hang of it.
+
+Happy coding!
+
+
+PS. Thanks to [this guide](http://rogerdudler.github.io/git-guide/) by Roger Dudler for keeping things simple.
diff --git a/Waypoint-Access-Array-Data-with-Indexes.md b/Waypoint-Access-Array-Data-with-Indexes.md
index 36a3d40..62a09d8 100644
--- a/Waypoint-Access-Array-Data-with-Indexes.md
+++ b/Waypoint-Access-Array-Data-with-Indexes.md
@@ -1,12 +1,12 @@
-# Access Array Data with Indexes
-We can access the data inside arrays using indexes.
-
-Array indexes are written in the same bracket notation that strings use, except that instead of specifying a character, they are specifying an entry in the array.
-
-For example:
-
-```
-var array = [1,2,3];
-array[0]; //equals 1
-var data = array[1];
-```
+# Access Array Data with Indexes
+We can access the data inside arrays using indexes.
+
+Array indexes are written in the same bracket notation that strings use, except that instead of specifying a character, they are specifying an entry in the array.
+
+For example:
+
+```
+var array = [1,2,3];
+array[0]; //equals 1
+var data = array[1];
+```
diff --git a/Waypoint-Add-Alt-Text-to-an-Image-for-Accessibility.md b/Waypoint-Add-Alt-Text-to-an-Image-for-Accessibility.md
index 50c0956..903b193 100644
--- a/Waypoint-Add-Alt-Text-to-an-Image-for-Accessibility.md
+++ b/Waypoint-Add-Alt-Text-to-an-Image-for-Accessibility.md
@@ -1,5 +1,5 @@
-`alt` attributes, also known as alt text, are what browsers will display if they fail to load the image. alt attributes are also important for blind or visually impaired users to understand what an image portrays. And search engines also look at alt attributes.
-
-In short, every image should have an alt attribute!
-
+`alt` attributes, also known as alt text, are what browsers will display if they fail to load the image. alt attributes are also important for blind or visually impaired users to understand what an image portrays. And search engines also look at alt attributes.
+
+In short, every image should have an alt attribute!
+
 You can add an alt attribute right in the img element like this: `<img src="www.your-image-source.com/your-image.jpg" alt="your alt text"/>`.
\ No newline at end of file
diff --git a/Waypoint-Add-Borders-Around-your-Elements.md b/Waypoint-Add-Borders-Around-your-Elements.md
index d8491b0..6f1de9f 100644
--- a/Waypoint-Add-Borders-Around-your-Elements.md
+++ b/Waypoint-Add-Borders-Around-your-Elements.md
@@ -1,3 +1,3 @@
-CSS borders have attributes like `style`, `color` and `width`.
-
+CSS borders have attributes like `style`, `color` and `width`.
+
 For example, if we wanted to create a red, 5 pixel border around an HTML element, we could use this class: `<style> .thin-red-border { border-color: red; border-width: 5px; border-style: solid; } </style>`.
\ No newline at end of file
diff --git a/Waypoint-Add-Different-Padding-to-Each-Side-of-an-Element.md b/Waypoint-Add-Different-Padding-to-Each-Side-of-an-Element.md
index 7ddd5fa..3765810 100644
--- a/Waypoint-Add-Different-Padding-to-Each-Side-of-an-Element.md
+++ b/Waypoint-Add-Different-Padding-to-Each-Side-of-an-Element.md
@@ -1,11 +1,11 @@
-CSS allows you to control the padding of an element on all four sides with `padding-top`, `padding-right`, `padding-bottom`, and `padding-left` attributes.
-
-```
-.green-box {
-  background-color: green;
-  padding-top: 40px;
-  padding-right: 20px;
-  padding-bottom: 20px;
-  padding-left: 40px;
-}
+CSS allows you to control the padding of an element on all four sides with `padding-top`, `padding-right`, `padding-bottom`, and `padding-left` attributes.
+
+```
+.green-box {
+  background-color: green;
+  padding-top: 40px;
+  padding-right: 20px;
+  padding-bottom: 20px;
+  padding-left: 40px;
+}
 ```
\ No newline at end of file
diff --git a/Waypoint-Add-Elements-within-your-Bootstrap-Wells.md b/Waypoint-Add-Elements-within-your-Bootstrap-Wells.md
index fe97df1..d9fd630 100644
--- a/Waypoint-Add-Elements-within-your-Bootstrap-Wells.md
+++ b/Waypoint-Add-Elements-within-your-Bootstrap-Wells.md
@@ -1,2 +1,2 @@
-# Add Elements within your Bootstrap Wells
-Once you have gone deep enough in `divs` you can start adding your Bootstrap buttons.
+# Add Elements within your Bootstrap Wells
+Once you have gone deep enough in `divs` you can start adding your Bootstrap buttons.
diff --git a/Waypoint-Add-Font-Awesome-Icons-to-all-of-our-Buttons.md b/Waypoint-Add-Font-Awesome-Icons-to-all-of-our-Buttons.md
index af9d1db..7a96926 100644
--- a/Waypoint-Add-Font-Awesome-Icons-to-all-of-our-Buttons.md
+++ b/Waypoint-Add-Font-Awesome-Icons-to-all-of-our-Buttons.md
@@ -1,4 +1,4 @@
-# Add Font Awesome Icons to all of our Buttons
-`<i class="fa fa-trash"></i>` Will add a trash can icon.
-
-`<i class="fa fa-info-circle"></i>` Will add an info icon.
+# Add Font Awesome Icons to all of our Buttons
+`<i class="fa fa-trash"></i>` Will add a trash can icon.
+
+`<i class="fa fa-info-circle"></i>` Will add an info icon.
diff --git a/Waypoint-Add-Font-Awesome-Icons-to-our-Buttons.md b/Waypoint-Add-Font-Awesome-Icons-to-our-Buttons.md
index b544309..97078be 100644
--- a/Waypoint-Add-Font-Awesome-Icons-to-our-Buttons.md
+++ b/Waypoint-Add-Font-Awesome-Icons-to-our-Buttons.md
@@ -1,4 +1,4 @@
-# Add Font Awesome Icons to our Buttons
-Font Awesome is a convenient library of icons. These icons are vector graphics, stored in the .svg file format. These icons are treated just like fonts. You can specify their size using pixels, and they will assume the font size of their parent HTML elements.
-
-`<i class="fa fa-thumbs-up"><button class="btn btn-block btn-primary">Like</i></button>`
+# Add Font Awesome Icons to our Buttons
+Font Awesome is a convenient library of icons. These icons are vector graphics, stored in the .svg file format. These icons are treated just like fonts. You can specify their size using pixels, and they will assume the font size of their parent HTML elements.
+
+`<i class="fa fa-thumbs-up"><button class="btn btn-block btn-primary">Like</i></button>`
diff --git a/Waypoint-Add-ID-Attributes-to-Bootstrap-Elements.md b/Waypoint-Add-ID-Attributes-to-Bootstrap-Elements.md
index 9b332af..fcb058c 100644
--- a/Waypoint-Add-ID-Attributes-to-Bootstrap-Elements.md
+++ b/Waypoint-Add-ID-Attributes-to-Bootstrap-Elements.md
@@ -1,4 +1,4 @@
-# Add ID Attributes to Bootstrap Elements
-Recall that in addition to class attributes, you can give each of your elements an id attribute.
-
-Each id should be unique to a specific element. Remember that you can give an element an id like this: `<div class="well" id="center-well">`
+# Add ID Attributes to Bootstrap Elements
+Recall that in addition to class attributes, you can give each of your elements an id attribute.
+
+Each id should be unique to a specific element. Remember that you can give an element an id like this: `<div class="well" id="center-well">`
diff --git a/Waypoint-Add-Images-to-your-Website.md b/Waypoint-Add-Images-to-your-Website.md
index 1ee5f85..81cd2fc 100644
--- a/Waypoint-Add-Images-to-your-Website.md
+++ b/Waypoint-Add-Images-to-your-Website.md
@@ -1,3 +1,3 @@
-You can add images to your website by using the `img` element, and point to an specific image's URL using the `src` attribute.
-
+You can add images to your website by using the `img` element, and point to an specific image's URL using the `src` attribute.
+
 An example of this would be `<img src="www.your-image-source.com/your-image.jpg">`. Note that in most cases, img elements are self-closing.
\ No newline at end of file
diff --git a/Waypoint-Add-Placeholder-Text-to-a-Text-Field.md b/Waypoint-Add-Placeholder-Text-to-a-Text-Field.md
index 94e60d5..44ae3bc 100644
--- a/Waypoint-Add-Placeholder-Text-to-a-Text-Field.md
+++ b/Waypoint-Add-Placeholder-Text-to-a-Text-Field.md
@@ -1,3 +1,3 @@
-Your placeholder text is what appears in your text input before your user has inputed anything.
-
+Your placeholder text is what appears in your text input before your user has inputed anything.
+
 You can create placeholder text like so: `<input type="text" placeholder="this is placeholder text">`.
\ No newline at end of file
diff --git a/Waypoint-Add-Rounded-Corners-with-a-Border-Radius.md b/Waypoint-Add-Rounded-Corners-with-a-Border-Radius.md
index 25d362e..57141eb 100644
--- a/Waypoint-Add-Rounded-Corners-with-a-Border-Radius.md
+++ b/Waypoint-Add-Rounded-Corners-with-a-Border-Radius.md
@@ -1,12 +1,12 @@
-To make round corners it is all about `border-radius` and pixels.
-
-You can specify a border-radius with pixels. This will affect how rounded the corners are.
-
-```
-.thick-green-border {
-  border-color: green;
-  border-width: 10px;
-  border-style: solid;
-  border-radius: 10px;
-}
+To make round corners it is all about `border-radius` and pixels.
+
+You can specify a border-radius with pixels. This will affect how rounded the corners are.
+
+```
+.thick-green-border {
+  border-color: green;
+  border-width: 10px;
+  border-style: solid;
+  border-radius: 10px;
+}
 ```
\ No newline at end of file
diff --git a/Waypoint-Add-Two-Numbers-with-JavaScript.md b/Waypoint-Add-Two-Numbers-with-JavaScript.md
index 3c6f938..0dfd506 100644
--- a/Waypoint-Add-Two-Numbers-with-JavaScript.md
+++ b/Waypoint-Add-Two-Numbers-with-JavaScript.md
@@ -1,4 +1,4 @@
-# Add Two Numbers with JavaScript
-JavaScript uses the `+` symbol for addition. It can also be used instead of `parseInt()` but that is beyond this.
-
-`var sum = 10 + 10;`
+# Add Two Numbers with JavaScript
+JavaScript uses the `+` symbol for addition. It can also be used instead of `parseInt()` but that is beyond this.
+
+`var sum = 10 + 10;`
diff --git a/Waypoint-Add-a-Submit-Button-to-a-Form.md b/Waypoint-Add-a-Submit-Button-to-a-Form.md
index 02ac0f6..75ef7d6 100644
--- a/Waypoint-Add-a-Submit-Button-to-a-Form.md
+++ b/Waypoint-Add-a-Submit-Button-to-a-Form.md
@@ -1,8 +1,8 @@
-You will need to create a `button` element. Here's an example submit button: `<button type="submit">this button submits the form</button>`.
-
-```
-<form action="/submit-cat-photo">
-  <input type="text" placeholder="cat photo URL">
-  <button type="submit">Submit</button>
-</form>
+You will need to create a `button` element. Here's an example submit button: `<button type="submit">this button submits the form</button>`.
+
+```
+<form action="/submit-cat-photo">
+  <input type="text" placeholder="cat photo URL">
+  <button type="submit">Submit</button>
+</form>
 ```
\ No newline at end of file
diff --git a/Waypoint-Add-your-JavaScript-Slot-Machine-Slots.md b/Waypoint-Add-your-JavaScript-Slot-Machine-Slots.md
index e819cdd..aca0b0f 100644
--- a/Waypoint-Add-your-JavaScript-Slot-Machine-Slots.md
+++ b/Waypoint-Add-your-JavaScript-Slot-Machine-Slots.md
@@ -1,10 +1,10 @@
-# Add your JavaScript Slot Machine Slots
-For this part we should notify if they same number is returned three times or return `null` otherwise.
-
-```
-if(slotOne !== slotTwo || slotTwo !== slotThree){
-      return (null);
-    }
-```
-
-If slot one and two are different, or slot two and three are not the same, then return `null`.
+# Add your JavaScript Slot Machine Slots
+For this part we should notify if they same number is returned three times or return `null` otherwise.
+
+```
+if(slotOne !== slotTwo || slotTwo !== slotThree){
+      return (null);
+    }
+```
+
+If slot one and two are different, or slot two and three are not the same, then return `null`.
diff --git a/Waypoint-Adjust-the-Margin-of-an-Element.md b/Waypoint-Adjust-the-Margin-of-an-Element.md
index bbfada8..0aecc93 100644
--- a/Waypoint-Adjust-the-Margin-of-an-Element.md
+++ b/Waypoint-Adjust-the-Margin-of-an-Element.md
@@ -1,9 +1,9 @@
-An element's `margin` controls the amount of space between an element's `border` and surrounding elements.
-
-```
-.green-box {
-  background-color: green;
-  padding: 20px;
-  margin: 20px;
-}
+An element's `margin` controls the amount of space between an element's `border` and surrounding elements.
+
+```
+.green-box {
+  background-color: green;
+  padding: 20px;
+  margin: 20px;
+}
 ```
\ No newline at end of file
diff --git a/Waypoint-Adjusting-the-Padding-of-an-Element.md b/Waypoint-Adjusting-the-Padding-of-an-Element.md
index 7d32e92..660c885 100644
--- a/Waypoint-Adjusting-the-Padding-of-an-Element.md
+++ b/Waypoint-Adjusting-the-Padding-of-an-Element.md
@@ -1,8 +1,8 @@
-HTML elements are essentially little rectangles. Three important attributes control the space that surrounds each HTML element: `padding`, `margin`, and `border`. An element's padding controls the amount of space between the element and its border.
-
-```
-.green-box {
-  background-color: green;
-  padding: 20px;
-}
+HTML elements are essentially little rectangles. Three important attributes control the space that surrounds each HTML element: `padding`, `margin`, and `border`. An element's padding controls the amount of space between the element and its border.
+
+```
+.green-box {
+  background-color: green;
+  padding: 20px;
+}
 ```
\ No newline at end of file
diff --git a/Waypoint-Apply-the-Default-Bootstrap-Button-Style.md b/Waypoint-Apply-the-Default-Bootstrap-Button-Style.md
index 79f9072..3a45b1d 100644
--- a/Waypoint-Apply-the-Default-Bootstrap-Button-Style.md
+++ b/Waypoint-Apply-the-Default-Bootstrap-Button-Style.md
@@ -1,23 +1,23 @@
-# Apply the Default Bootstrap Button Style
-Bootstrap has a button class called `btn-default`
-
-```
-<div class="container-fluid">
-  <h3 class="text-primary text-center">jQuery Playground</h3>
-  <div class="row">
-    <div class="col-xs-6">
-      <div class="well">
-        <button class="btn btn-default"></button>
-        <button class="btn btn-default"></button>
-        <button class="btn btn-default"></button>
-      </div>
-    </div>
-    <div class="col-xs-6">
-      <div class="well">
-        <button class="btn btn-default"></button>
-        <button class="btn btn-default"></button>
-        <button class="btn btn-default"></button>
-      </div>
-    </div>
-  </div>
-</div>
+# Apply the Default Bootstrap Button Style
+Bootstrap has a button class called `btn-default`
+
+```
+<div class="container-fluid">
+  <h3 class="text-primary text-center">jQuery Playground</h3>
+  <div class="row">
+    <div class="col-xs-6">
+      <div class="well">
+        <button class="btn btn-default"></button>
+        <button class="btn btn-default"></button>
+        <button class="btn btn-default"></button>
+      </div>
+    </div>
+    <div class="col-xs-6">
+      <div class="well">
+        <button class="btn btn-default"></button>
+        <button class="btn btn-default"></button>
+        <button class="btn btn-default"></button>
+      </div>
+    </div>
+  </div>
+</div>
diff --git a/Waypoint-Bring-your-JavaScript-Slot-Machine-to-Life.md b/Waypoint-Bring-your-JavaScript-Slot-Machine-to-Life.md
index 0cbb08e..a1fe620 100644
--- a/Waypoint-Bring-your-JavaScript-Slot-Machine-to-Life.md
+++ b/Waypoint-Bring-your-JavaScript-Slot-Machine-to-Life.md
@@ -1,10 +1,10 @@
-# Bring your JavaScript Slot Machine to Life
-Let's use the jQuery selector `$(".slot")` to select all of the slots.
-
-Once they are all selected, we can use bracket notation to access each individual slot:
-
-```
-$($(".slot")[0]).html(slotOne);
-$($(".slot")[1]).html(slotTwo);
-$($(".slot")[2]).html(slotThree);
-```
+# Bring your JavaScript Slot Machine to Life
+Let's use the jQuery selector `$(".slot")` to select all of the slots.
+
+Once they are all selected, we can use bracket notation to access each individual slot:
+
+```
+$($(".slot")[0]).html(slotOne);
+$($(".slot")[1]).html(slotTwo);
+$($(".slot")[2]).html(slotThree);
+```
diff --git a/Waypoint-Build-JavaScript-Objects.md b/Waypoint-Build-JavaScript-Objects.md
index 27bf627..13b62dc 100644
--- a/Waypoint-Build-JavaScript-Objects.md
+++ b/Waypoint-Build-JavaScript-Objects.md
@@ -1,15 +1,15 @@
-# Build JavaScript Objects
-Objects are similar to arrays, except that instead of using indexes to access and modify their data, you access the data in objects through what are called properties.
-
-Here's a sample object:
-
-```
-var cat = {
- "name": "Whiskers",
- "legs": 4,
- "tails": 1,
- "enemies": ["Water", "Dogs"]
-};
-```
-
-Objects are useful for storing data in a structured way, and can represents real world objects, like a cats.
+# Build JavaScript Objects
+Objects are similar to arrays, except that instead of using indexes to access and modify their data, you access the data in objects through what are called properties.
+
+Here's a sample object:
+
+```
+var cat = {
+ "name": "Whiskers",
+ "legs": 4,
+ "tails": 1,
+ "enemies": ["Water", "Dogs"]
+};
+```
+
+Objects are useful for storing data in a structured way, and can represents real world objects, like a cats.
diff --git a/Waypoint-Call-out-Optional-Actions-with-Button-Info.md b/Waypoint-Call-out-Optional-Actions-with-Button-Info.md
index 292641d..2d89eaa 100644
--- a/Waypoint-Call-out-Optional-Actions-with-Button-Info.md
+++ b/Waypoint-Call-out-Optional-Actions-with-Button-Info.md
@@ -1,4 +1,4 @@
-# Call out Optional Actions with Button Info
-Bootstrap comes with several pre-defined colors for buttons. The `btn-info` class is used to call attention to optional actions that the user can take. Note that these buttons still need the `btn` and`btn-block` classes.
-
-`<button class= "btn btn-block btn-info">Info</button>`
+# Call out Optional Actions with Button Info
+Bootstrap comes with several pre-defined colors for buttons. The `btn-info` class is used to call attention to optional actions that the user can take. Note that these buttons still need the `btn` and`btn-block` classes.
+
+`<button class= "btn btn-block btn-info">Info</button>`
diff --git a/Waypoint-Center-Text-with-Bootstrap.md b/Waypoint-Center-Text-with-Bootstrap.md
index c7683d6..2773247 100644
--- a/Waypoint-Center-Text-with-Bootstrap.md
+++ b/Waypoint-Center-Text-with-Bootstrap.md
@@ -1,4 +1,4 @@
-# Center Text with Bootstrap
-Now that we're using Bootstrap, we can center our heading elements to make them look better. All we need to do is add the class text-center to our h1 and h2 elements.
-
-Remember that you can add several classes to the same element by separating each of them with a space, like this: `<h2 class="text-red text-center">your text</h2>`.
+# Center Text with Bootstrap
+Now that we're using Bootstrap, we can center our heading elements to make them look better. All we need to do is add the class text-center to our h1 and h2 elements.
+
+Remember that you can add several classes to the same element by separating each of them with a space, like this: `<h2 class="text-red text-center">your text</h2>`.
diff --git a/Waypoint-Change-the-CSS-of-an-Element-Using-jQuery.md b/Waypoint-Change-the-CSS-of-an-Element-Using-jQuery.md
index 4adb4fd..84d7143 100644
--- a/Waypoint-Change-the-CSS-of-an-Element-Using-jQuery.md
+++ b/Waypoint-Change-the-CSS-of-an-Element-Using-jQuery.md
@@ -1,13 +1,13 @@
-# Change the CSS of an Element Using jQuery
-We can also change the CSS of an HTML element directly with jQuery.
-
-Query has a function called `.css()` that allows you to change the CSS of an element.
-
-```
-<script>
-  $(document).ready(function() {
-    $("#target1").css("color", "red");
-
-  });
-</script>
-```
+# Change the CSS of an Element Using jQuery
+We can also change the CSS of an HTML element directly with jQuery.
+
+Query has a function called `.css()` that allows you to change the CSS of an element.
+
+```
+<script>
+  $(document).ready(function() {
+    $("#target1").css("color", "red");
+
+  });
+</script>
+```
diff --git a/Waypoint-Change-the-Color-of-Text.md b/Waypoint-Change-the-Color-of-Text.md
index c0c1a9a..6ab7609 100644
--- a/Waypoint-Change-the-Color-of-Text.md
+++ b/Waypoint-Change-the-Color-of-Text.md
@@ -1,3 +1,3 @@
-CSS allows us to change  many styles. To change the color of an element we use `color`.
-
+CSS allows us to change  many styles. To change the color of an element we use `color`.
+
 Here's how you would set your h2 element's text color to blue: `<h2 style="color: blue">CatPhotoApp</h2>`.
\ No newline at end of file
diff --git a/Waypoint-Check-Radio-Buttons-and-Checkboxes-by-Default.md b/Waypoint-Check-Radio-Buttons-and-Checkboxes-by-Default.md
index 8ce6537..145bee2 100644
--- a/Waypoint-Check-Radio-Buttons-and-Checkboxes-by-Default.md
+++ b/Waypoint-Check-Radio-Buttons-and-Checkboxes-by-Default.md
@@ -1,3 +1,3 @@
-You can set a checkbox or radio button to be checked by default using the checked attribute.
-
+You can set a checkbox or radio button to be checked by default using the checked attribute.
+
 To do this, just add the word "checked" to the inside of an input element. For example, `<input type="radio" name="test-name" checked>`.
\ No newline at end of file
diff --git a/Waypoint-Check-the-Length-Property-of-a-String-Variable.md b/Waypoint-Check-the-Length-Property-of-a-String-Variable.md
index 922c2bc..0e964f5 100644
--- a/Waypoint-Check-the-Length-Property-of-a-String-Variable.md
+++ b/Waypoint-Check-the-Length-Property-of-a-String-Variable.md
@@ -1,4 +1,4 @@
-# Check the Length Property of a String Variable
-Data structures have properties. For example, strings have a property called `.length` that will tell you how many characters are in the string.
-
-`lastNameLength = lastName.length;`
+# Check the Length Property of a String Variable
+Data structures have properties. For example, strings have a property called `.length` that will tell you how many characters are in the string.
+
+`lastNameLength = lastName.length;`
diff --git a/Waypoint-Clone-an-Element-Using-jQuery.md b/Waypoint-Clone-an-Element-Using-jQuery.md
index 3cc267c..adf36f3 100644
--- a/Waypoint-Clone-an-Element-Using-jQuery.md
+++ b/Waypoint-Clone-an-Element-Using-jQuery.md
@@ -1,4 +1,4 @@
-# Clone an Element Using jQuery
-jQuery has a function called`clone()` that makes a copy of an element.
-
-For example, if we wanted to copy target2 from our left-well to our right-well, we would use `$("#target2").clone().appendTo("#right-well");`
+# Clone an Element Using jQuery
+jQuery has a function called`clone()` that makes a copy of an element.
+
+For example, if we wanted to copy target2 from our left-well to our right-well, we would use `$("#target2").clone().appendTo("#right-well");`
diff --git a/Waypoint-Comment-out-HTML.md b/Waypoint-Comment-out-HTML.md
index 396c865..3e1e82e 100644
--- a/Waypoint-Comment-out-HTML.md
+++ b/Waypoint-Comment-out-HTML.md
@@ -1,15 +1,15 @@
-Commenting is a way that you can leave comments within your code without affecting the code itself.
-
-It is also a convenient way to make code inactive without having to delete it entirely.
-
-You can start a comment with `<!-- and end a comment with -->`.
-
-```
-<!--
-<h1>Hello World</h1>
-
-<h2>CatPhotoApp</h2>
-
-<p>Hello Paragraph</p>
--->
+Commenting is a way that you can leave comments within your code without affecting the code itself.
+
+It is also a convenient way to make code inactive without having to delete it entirely.
+
+You can start a comment with `<!-- and end a comment with -->`.
+
+```
+<!--
+<h1>Hello World</h1>
+
+<h2>CatPhotoApp</h2>
+
+<p>Hello Paragraph</p>
+-->
 ```
\ No newline at end of file
diff --git a/Waypoint-Comment-your-JavaScript-Code.md b/Waypoint-Comment-your-JavaScript-Code.md
index 66a4ddb..d799f5e 100644
--- a/Waypoint-Comment-your-JavaScript-Code.md
+++ b/Waypoint-Comment-your-JavaScript-Code.md
@@ -1,10 +1,10 @@
-# Comment your JavaScript Code
-Comments are a great way to leave notes to yourself and to other people who will later need to figure out what it does. Any code in it will be ignored.
-
-Let's take a look at the two ways you can write comments in JavaScript.
-- The double-slash comment will comment out the remainder of the text on the current line:
-
-`// This is a comment.`
-- The slash-star-star-slash comment will comment out everything between the `/*` and the `*/` characters:
-
-`/* This is also a comment */`
+# Comment your JavaScript Code
+Comments are a great way to leave notes to yourself and to other people who will later need to figure out what it does. Any code in it will be ignored.
+
+Let's take a look at the two ways you can write comments in JavaScript.
+- The double-slash comment will comment out the remainder of the text on the current line:
+
+`// This is a comment.`
+- The slash-star-star-slash comment will comment out everything between the `/*` and the `*/` characters:
+
+`/* This is also a comment */`
diff --git a/Waypoint-Concatenate-Strings-with-.concat.md b/Waypoint-Concatenate-Strings-with-.concat.md
index fbd435d..6470124 100644
--- a/Waypoint-Concatenate-Strings-with-.concat.md
+++ b/Waypoint-Concatenate-Strings-with-.concat.md
@@ -1,3 +1,3 @@
-`.concat()` can be used to merge the contents of two arrays into one.
-
-`array = array.concat(otherArray);`
+`.concat()` can be used to merge the contents of two arrays into one.
+
+`array = array.concat(otherArray);`
diff --git a/Waypoint-Condense-arrays-with-reduce.md b/Waypoint-Condense-arrays-with-reduce.md
index 39151c8..b7ef793 100644
--- a/Waypoint-Condense-arrays-with-reduce.md
+++ b/Waypoint-Condense-arrays-with-reduce.md
@@ -1,13 +1,13 @@
-Reduce can be useful for condensing an array of numbers into one value.
-
-```
-var array = [4,5,6,7,8];
-var singleVal = 0;
-// Only change code below this line.
-
-var singleVal = array.reduce(function(previousVal, currentVal){
-
-  return previousVal+currentVal;
-
-});
+Reduce can be useful for condensing an array of numbers into one value.
+
+```
+var array = [4,5,6,7,8];
+var singleVal = 0;
+// Only change code below this line.
+
+var singleVal = array.reduce(function(previousVal, currentVal){
+
+  return previousVal+currentVal;
+
+});
 ```
\ No newline at end of file
diff --git a/Waypoint-Construct-JavaScript-Objects-with-Functions.md b/Waypoint-Construct-JavaScript-Objects-with-Functions.md
index ba8142a..4d61f56 100644
--- a/Waypoint-Construct-JavaScript-Objects-with-Functions.md
+++ b/Waypoint-Construct-JavaScript-Objects-with-Functions.md
@@ -1,13 +1,13 @@
-## Construct JavaScript Objects with Functions
-Using constructors it is easy to create new objects using a blueprint or constructor. The declaration syntax is a little different but still easy to remember.
-
-```
-// Let's add the properties engines and seats to the car in the same way that the property wheels has been added below. They should both be numbers.
-var Car = function() {
-  this.wheels = 4;
-  this.engines = 1;
-  this.seats = 1;
-};
-
-var myCar = new Car();
+## Construct JavaScript Objects with Functions
+Using constructors it is easy to create new objects using a blueprint or constructor. The declaration syntax is a little different but still easy to remember.
+
+```
+// Let's add the properties engines and seats to the car in the same way that the property wheels has been added below. They should both be numbers.
+var Car = function() {
+  this.wheels = 4;
+  this.engines = 1;
+  this.seats = 1;
+};
+
+var myCar = new Car();
 ```
\ No newline at end of file
diff --git a/Waypoint-Create-Bootstrap-Wells.md b/Waypoint-Create-Bootstrap-Wells.md
index 5538b97..7da9ee4 100644
--- a/Waypoint-Create-Bootstrap-Wells.md
+++ b/Waypoint-Create-Bootstrap-Wells.md
@@ -1,26 +1,26 @@
-# Create Bootstrap Wells
-Bootstrap has a class called `well` that can create a visual sense of depth for your columns.
-
-Nest one div element with the class well within each of your `col-xs-6 div` elements.
-
-```
-<div class="container-fluid">
-  <h3 class="text-primary text-center">jQuery Playground</h3>
-  <div class="row">
-    <div class="col-xs-6">
-      <div class="well">
-
-
-
-      </div>
-    </div>
-    <div class="col-xs-6">
-      <div class="well">
-
-
-
-      </div>
-    </div>
-  </div>
-</div>
-```
+# Create Bootstrap Wells
+Bootstrap has a class called `well` that can create a visual sense of depth for your columns.
+
+Nest one div element with the class well within each of your `col-xs-6 div` elements.
+
+```
+<div class="container-fluid">
+  <h3 class="text-primary text-center">jQuery Playground</h3>
+  <div class="row">
+    <div class="col-xs-6">
+      <div class="well">
+
+
+
+      </div>
+    </div>
+    <div class="col-xs-6">
+      <div class="well">
+
+
+
+      </div>
+    </div>
+  </div>
+</div>
+```
diff --git a/Waypoint-Create-Decimal-Numbers-with-JavaScript.md b/Waypoint-Create-Decimal-Numbers-with-JavaScript.md
index 9567d1f..00e9f37 100644
--- a/Waypoint-Create-Decimal-Numbers-with-JavaScript.md
+++ b/Waypoint-Create-Decimal-Numbers-with-JavaScript.md
@@ -1,2 +1,2 @@
-# Create Decimal Numbers with JavaScript
-JavaScript number variables can have decimals. `var myDecimal = 2.8;`
+# Create Decimal Numbers with JavaScript
+JavaScript number variables can have decimals. `var myDecimal = 2.8;`
diff --git a/Waypoint-Create-a-Block-Element-Bootstrap-Button.md b/Waypoint-Create-a-Block-Element-Bootstrap-Button.md
index ec74f3c..ae78f23 100644
--- a/Waypoint-Create-a-Block-Element-Bootstrap-Button.md
+++ b/Waypoint-Create-a-Block-Element-Bootstrap-Button.md
@@ -1,4 +1,4 @@
-# Create a Block Element Bootstrap Button
-Normally, your button elements are only as wide as the text that they contain. By making them block elements, your button will stretch to fill your page's entire horizontal space. Note that these buttons still need the `btn` class.
-
-`<button class="btn btn-block">Like</button>`
+# Create a Block Element Bootstrap Button
+Normally, your button elements are only as wide as the text that they contain. By making them block elements, your button will stretch to fill your page's entire horizontal space. Note that these buttons still need the `btn` class.
+
+`<button class="btn btn-block">Like</button>`
diff --git a/Waypoint-Create-a-Bootstrap-Button.md b/Waypoint-Create-a-Bootstrap-Button.md
index c46a1cb..1f1ef74 100644
--- a/Waypoint-Create-a-Bootstrap-Button.md
+++ b/Waypoint-Create-a-Bootstrap-Button.md
@@ -1,4 +1,4 @@
-# Create a Bootstrap Button
-Bootstrap has its own styles for button elements, which look much better than the plain HTML ones.
-
-`<button type="submit" class="btn">Like</button>`
+# Create a Bootstrap Button
+Bootstrap has its own styles for button elements, which look much better than the plain HTML ones.
+
+`<button type="submit" class="btn">Like</button>`
diff --git a/Waypoint-Create-a-Bootstrap-Headline.md b/Waypoint-Create-a-Bootstrap-Headline.md
index 9f9f518..59d104b 100644
--- a/Waypoint-Create-a-Bootstrap-Headline.md
+++ b/Waypoint-Create-a-Bootstrap-Headline.md
@@ -1,2 +1,2 @@
-# Create a Bootstrap Headline
-`<h3 class="text-primary text-center"> jQuery Playground </h3>`
+# Create a Bootstrap Headline
+`<h3 class="text-primary text-center"> jQuery Playground </h3>`
diff --git a/Waypoint-Create-a-Bootstrap-Row.md b/Waypoint-Create-a-Bootstrap-Row.md
index ea17b35..2bf1951 100644
--- a/Waypoint-Create-a-Bootstrap-Row.md
+++ b/Waypoint-Create-a-Bootstrap-Row.md
@@ -1,2 +1,2 @@
-# Create a Bootstrap Row
-Create a div element with the class row. `<div class="row"></div>`
+# Create a Bootstrap Row
+Create a div element with the class row. `<div class="row"></div>`
diff --git a/Waypoint-Create-a-Bulleted-Unordered-List.md b/Waypoint-Create-a-Bulleted-Unordered-List.md
index 67ac4b8..2bcb687 100644
--- a/Waypoint-Create-a-Bulleted-Unordered-List.md
+++ b/Waypoint-Create-a-Bulleted-Unordered-List.md
@@ -1,14 +1,14 @@
-HTML has a special element for creating unordered lists, or bullet point-style lists.
-
-Unordered lists start with a `<ul>` element. Then they contain some number of `<li>` elements.
-
-For example:
-
-```
-<ul>
-  <li>milk</li>
-  <li>cheese</li>
-</ul>
-```
-
+HTML has a special element for creating unordered lists, or bullet point-style lists.
+
+Unordered lists start with a `<ul>` element. Then they contain some number of `<li>` elements.
+
+For example:
+
+```
+<ul>
+  <li>milk</li>
+  <li>cheese</li>
+</ul>
+```
+
 would create a bullet point-style list of "milk" and "cheese".
\ No newline at end of file
diff --git a/Waypoint-Create-a-Class-to-Target-with-jQuery-Selectors.md b/Waypoint-Create-a-Class-to-Target-with-jQuery-Selectors.md
index 461fe66..71e9322 100644
--- a/Waypoint-Create-a-Class-to-Target-with-jQuery-Selectors.md
+++ b/Waypoint-Create-a-Class-to-Target-with-jQuery-Selectors.md
@@ -1,4 +1,4 @@
-# Create a Class to Target with jQuery Selectors
-Not every class needs to have corresponding CSS. Sometimes we create classes just for the purpose of selecting these elements more easily using jQuery.
-
-For this we use the `target` class on the `button` elements.
+# Create a Class to Target with jQuery Selectors
+Not every class needs to have corresponding CSS. Sometimes we create classes just for the purpose of selecting these elements more easily using jQuery.
+
+For this we use the `target` class on the `button` elements.
diff --git a/Waypoint-Create-a-Custom-Heading.md b/Waypoint-Create-a-Custom-Heading.md
index 50b84d7..9ed88bb 100644
--- a/Waypoint-Create-a-Custom-Heading.md
+++ b/Waypoint-Create-a-Custom-Heading.md
@@ -1,12 +1,12 @@
-# Create a Custom Heading
-Using `div` and the custom grid layout we can create our own heading.
-
-```
-<div class="row">
-   <div class="col-xs-8">
-     <h2 class="text-primary text-center">CatPhotoApp</h2>
-   </div>
-   <div class="col-xs-4">
-     <a href="#"><img class="img-responsive thick-green-border" src="https://bit.ly/fcc-relaxing-cat"></a>
-   </div>
-```
+# Create a Custom Heading
+Using `div` and the custom grid layout we can create our own heading.
+
+```
+<div class="row">
+   <div class="col-xs-8">
+     <h2 class="text-primary text-center">CatPhotoApp</h2>
+   </div>
+   <div class="col-xs-4">
+     <a href="#"><img class="img-responsive thick-green-border" src="https://bit.ly/fcc-relaxing-cat"></a>
+   </div>
+```
diff --git a/Waypoint-Create-a-Form-Element.md b/Waypoint-Create-a-Form-Element.md
index 3b9caea..5215e88 100644
--- a/Waypoint-Create-a-Form-Element.md
+++ b/Waypoint-Create-a-Form-Element.md
@@ -1,3 +1,3 @@
-You can build web forms that actually submit data to a server using nothing more than pure HTML. You can do this by specifying an action on your `form` element. 
-
+You can build web forms that actually submit data to a server using nothing more than pure HTML. You can do this by specifying an action on your `form` element. 
+
 For example: `<form action="/url-where-you-want-to-submit-form-data"></form>`.
\ No newline at end of file
diff --git a/Waypoint-Create-a-JavaScript-Slot-Machine.md b/Waypoint-Create-a-JavaScript-Slot-Machine.md
index 08977cc..0e4dd61 100644
--- a/Waypoint-Create-a-JavaScript-Slot-Machine.md
+++ b/Waypoint-Create-a-JavaScript-Slot-Machine.md
@@ -1,8 +1,8 @@
-# Create a JavaScript Slot Machine
-For this we have to generate three random numbers using the formula they give us and not the general one. `Math.floor(Math.random() * (3 - 1 + 1)) + 1;`
-
-```
-slotOne = Math.floor(Math.random() * (3 - 1 + 1)) + 1;
-slotTwo = Math.floor(Math.random() * (3 - 1 + 1)) + 1;
-slotThree = Math.floor(Math.random() * (3 - 1 + 1)) + 1;
-```
+# Create a JavaScript Slot Machine
+For this we have to generate three random numbers using the formula they give us and not the general one. `Math.floor(Math.random() * (3 - 1 + 1)) + 1;`
+
+```
+slotOne = Math.floor(Math.random() * (3 - 1 + 1)) + 1;
+slotTwo = Math.floor(Math.random() * (3 - 1 + 1)) + 1;
+slotThree = Math.floor(Math.random() * (3 - 1 + 1)) + 1;
+```
diff --git a/Waypoint-Create-a-Set-of-Checkboxes.md b/Waypoint-Create-a-Set-of-Checkboxes.md
index adf428a..9315061 100644
--- a/Waypoint-Create-a-Set-of-Checkboxes.md
+++ b/Waypoint-Create-a-Set-of-Checkboxes.md
@@ -1,5 +1,5 @@
-Checkboxes are a type of input.
-- Each of your checkboxes should be nested within its own label element.
-- All related checkbox inputs should have the same name attribute.
-
+Checkboxes are a type of input.
+- Each of your checkboxes should be nested within its own label element.
+- All related checkbox inputs should have the same name attribute.
+
 Here's an example of a checkbox: `<label><input type="checkbox" name="personality"> Loving</label>`.
\ No newline at end of file
diff --git a/Waypoint-Create-a-Set-of-Radio-Buttons.md b/Waypoint-Create-a-Set-of-Radio-Buttons.md
index 7640203..f9a5d00 100644
--- a/Waypoint-Create-a-Set-of-Radio-Buttons.md
+++ b/Waypoint-Create-a-Set-of-Radio-Buttons.md
@@ -1,5 +1,5 @@
-You can use radio buttons for questions where you want the user to only give you one answer.
-
-Radio buttons are a type of input. They should all be nested in their own label element. Furthermore, all related radio buttons should have the same name attribute.
-
+You can use radio buttons for questions where you want the user to only give you one answer.
+
+Radio buttons are a type of input. They should all be nested in their own label element. Furthermore, all related radio buttons should have the same name attribute.
+
 Here's an example of a radio button: `<label><input type="radio" name="indoor-outdoor"> Indoor</label>`.
\ No newline at end of file
diff --git a/Waypoint-Create-a-Text-Field.md b/Waypoint-Create-a-Text-Field.md
index 7f75c07..4d56cfd 100644
--- a/Waypoint-Create-a-Text-Field.md
+++ b/Waypoint-Create-a-Text-Field.md
@@ -1,3 +1,3 @@
-Text inputs are a convenient way to get input from your user.
-
+Text inputs are a convenient way to get input from your user.
+
 You can create one like this: `<input type="text">`. Note that input elements are self-closing.
\ No newline at end of file
diff --git a/Waypoint-Create-an-Ordered-List.md b/Waypoint-Create-an-Ordered-List.md
index f4486aa..f84e03f 100644
--- a/Waypoint-Create-an-Ordered-List.md
+++ b/Waypoint-Create-an-Ordered-List.md
@@ -1,14 +1,14 @@
-HTML has a special element for creating ordered lists, or numbered-style lists.
-
-Ordered lists start with a `<ol>` element. Then they contain some number of `<li>` elements.
-
-For example:
-
-```
-<ol>
-  <li>hydrogen</li>
-  <li>helium</li>
-</ol>
-```
-
+HTML has a special element for creating ordered lists, or numbered-style lists.
+
+Ordered lists start with a `<ol>` element. Then they contain some number of `<li>` elements.
+
+For example:
+
+```
+<ol>
+  <li>hydrogen</li>
+  <li>helium</li>
+</ol>
+```
+
 would create a numbered list of "hydrogen" and "helium".
\ No newline at end of file
diff --git a/Waypoint-Declare-JavaScript-Objects-as-Variables.md b/Waypoint-Declare-JavaScript-Objects-as-Variables.md
index 56ebe61..7cd2e80 100644
--- a/Waypoint-Declare-JavaScript-Objects-as-Variables.md
+++ b/Waypoint-Declare-JavaScript-Objects-as-Variables.md
@@ -1,12 +1,12 @@
-## Declare JavaScript Objects as Variables
-
-This has a simple format. You declare your variable and have it equal to an object in the form `{ key: value}`
-
-```
-var car = {
-  "wheels":4,
-  "engines":1,
-  "seats":5
-};
-```
-
+## Declare JavaScript Objects as Variables
+
+This has a simple format. You declare your variable and have it equal to an object in the form `{ key: value}`
+
+```
+var car = {
+  "wheels":4,
+  "engines":1,
+  "seats":5
+};
+```
+
diff --git a/Waypoint-Declare-JavaScript-Variables.md b/Waypoint-Declare-JavaScript-Variables.md
index 2811568..87bcd44 100644
--- a/Waypoint-Declare-JavaScript-Variables.md
+++ b/Waypoint-Declare-JavaScript-Variables.md
@@ -1,4 +1,4 @@
-# Declare JavaScript Variables
-When we store data in a data structure, we call it a variable. JavaScript variables are written in `camel case`. An example of camel case is: `camelCase`.
-
-You can declare a variable this way `var myName = "Rafael";`
+# Declare JavaScript Variables
+When we store data in a data structure, we call it a variable. JavaScript variables are written in `camel case`. An example of camel case is: `camelCase`.
+
+You can declare a variable this way `var myName = "Rafael";`
diff --git a/Waypoint-Declare-String-Variables.md b/Waypoint-Declare-String-Variables.md
index e2042d9..6ecca2a 100644
--- a/Waypoint-Declare-String-Variables.md
+++ b/Waypoint-Declare-String-Variables.md
@@ -1,4 +1,4 @@
-# Declare String Variables
-A String variable. It is nothing more than a "string" of characters. JavaScript strings are always wrapped in quotes.
-
-`var myFirstName = 'Rafael';`
+# Declare String Variables
+A String variable. It is nothing more than a "string" of characters. JavaScript strings are always wrapped in quotes.
+
+`var myFirstName = 'Rafael';`
diff --git a/Waypoint-Delete-your-jQuery-Functions.md b/Waypoint-Delete-your-jQuery-Functions.md
index 9a5def6..97979c1 100644
--- a/Waypoint-Delete-your-jQuery-Functions.md
+++ b/Waypoint-Delete-your-jQuery-Functions.md
@@ -1,2 +1,2 @@
-# Delete your jQuery Functions
-To delete the functions it is just as any other piece of code that you want to remove, select it and delete with the keyboard.
+# Delete your jQuery Functions
+To delete the functions it is just as any other piece of code that you want to remove, select it and delete with the keyboard.
diff --git a/Waypoint-Disable-an-Element-Using-jQuery.md b/Waypoint-Disable-an-Element-Using-jQuery.md
index e7fa1ea..9bade9b 100644
--- a/Waypoint-Disable-an-Element-Using-jQuery.md
+++ b/Waypoint-Disable-an-Element-Using-jQuery.md
@@ -1,8 +1,8 @@
-# Disable an Element Using jQuery
-You can also change the non-CSS properties of HTML elements with jQuery. For example, you can disable buttons.
-
-When you disable a button, it will become grayed-out and can no longer be clicked.
-
-jQuery has a function called `.prop()` that allows you to adjust the properties of elements.
-
-Here's how you would disable all buttons: `$('#button').prop('disabled', true);`
+# Disable an Element Using jQuery
+You can also change the non-CSS properties of HTML elements with jQuery. For example, you can disable buttons.
+
+When you disable a button, it will become grayed-out and can no longer be clicked.
+
+jQuery has a function called `.prop()` that allows you to adjust the properties of elements.
+
+Here's how you would disable all buttons: `$('#button').prop('disabled', true);`
diff --git a/Waypoint-Ditch-Custom-CSS-for-Bootstrap.md b/Waypoint-Ditch-Custom-CSS-for-Bootstrap.md
index 48d2d6c..87ca2d0 100644
--- a/Waypoint-Ditch-Custom-CSS-for-Bootstrap.md
+++ b/Waypoint-Ditch-Custom-CSS-for-Bootstrap.md
@@ -1,4 +1,4 @@
-# Ditch Custom CSS for Bootstrap
-We can clean up our code and make our Cat Photo App look more conventional by using Bootstrap's built-in styles instead of the custom styles we created earlier.
-
-All you need to know is the built in [classes](http://getbootstrap.com/css/).
+# Ditch Custom CSS for Bootstrap
+We can clean up our code and make our Cat Photo App look more conventional by using Bootstrap's built-in styles instead of the custom styles we created earlier.
+
+All you need to know is the built in [classes](http://getbootstrap.com/css/).
diff --git a/Waypoint-Divide-One-Number-by-Another-with-JavaScript.md b/Waypoint-Divide-One-Number-by-Another-with-JavaScript.md
index ad49ac9..cd04527 100644
--- a/Waypoint-Divide-One-Number-by-Another-with-JavaScript.md
+++ b/Waypoint-Divide-One-Number-by-Another-with-JavaScript.md
@@ -1,2 +1,2 @@
-# Divide One Number by Another with JavaScript
-JavaScript uses use the `/` symbol for division. `var quotient = 66 / 33;`
+# Divide One Number by Another with JavaScript
+JavaScript uses use the `/` symbol for division. `var quotient = 66 / 33;`
diff --git a/Waypoint-Fill-in-the-Blank-with-Placeholder-Text.md b/Waypoint-Fill-in-the-Blank-with-Placeholder-Text.md
index 327c9e2..b3f335c 100644
--- a/Waypoint-Fill-in-the-Blank-with-Placeholder-Text.md
+++ b/Waypoint-Fill-in-the-Blank-with-Placeholder-Text.md
@@ -1,11 +1,11 @@
-Web developers traditionally use **lorem ipsum** text as placeholder text. It's called lorem ipsum text because those are the first two words of a famous passage by Cicero of Ancient Rome.
-
-**lorem ipsum** text has been used as placeholder text by typesetters since the 16th century, and this tradition continues on the web.
-
-```
-<h1>Hello World</h1>
-
-<h2>CatPhotoApp</h2>
-
-<p>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>
+Web developers traditionally use **lorem ipsum** text as placeholder text. It's called lorem ipsum text because those are the first two words of a famous passage by Cicero of Ancient Rome.
+
+**lorem ipsum** text has been used as placeholder text by typesetters since the 16th century, and this tradition continues on the web.
+
+```
+<h1>Hello World</h1>
+
+<h2>CatPhotoApp</h2>
+
+<p>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>
 ```
\ No newline at end of file
diff --git a/Waypoint-Filter-Arrays-with-filter.md b/Waypoint-Filter-Arrays-with-filter.md
index 6cfe6f8..cd1807a 100644
--- a/Waypoint-Filter-Arrays-with-filter.md
+++ b/Waypoint-Filter-Arrays-with-filter.md
@@ -1,9 +1,9 @@
-Filter is a useful method that can filter out values that don't match a certain criteria.
-
-```
-var array = [1,2,3,4,5,6,7,8,9,10];
-  // Only change code below this line.
-array = array.filter(function(val) {
-  return val <= 5;
-});
+Filter is a useful method that can filter out values that don't match a certain criteria.
+
+```
+var array = [1,2,3,4,5,6,7,8,9,10];
+  // Only change code below this line.
+array = array.filter(function(val) {
+  return val <= 5;
+});
 ```
\ No newline at end of file
diff --git a/Waypoint-Find-Numbers-with-Regular-Expressions.md b/Waypoint-Find-Numbers-with-Regular-Expressions.md
index e5b9930..600eb52 100644
--- a/Waypoint-Find-Numbers-with-Regular-Expressions.md
+++ b/Waypoint-Find-Numbers-with-Regular-Expressions.md
@@ -1,6 +1,6 @@
-# Find Numbers with Regular Expressions
-We can use special selectors in Regular Expressions to select a particular type of value.
-
-One such selector is the digit selector `\d` which is used to grab the numbers in a string.
-
-It is used like this: `/\d+/g`.
+# Find Numbers with Regular Expressions
+We can use special selectors in Regular Expressions to select a particular type of value.
+
+One such selector is the digit selector `\d` which is used to grab the numbers in a string.
+
+It is used like this: `/\d+/g`.
diff --git a/Waypoint-Find-White-Space-with-Regular-Expressions.md b/Waypoint-Find-White-Space-with-Regular-Expressions.md
index cd9ac3b..02ff6af 100644
--- a/Waypoint-Find-White-Space-with-Regular-Expressions.md
+++ b/Waypoint-Find-White-Space-with-Regular-Expressions.md
@@ -1,6 +1,6 @@
-# Find White Space with Regular Expressions
-We can also use selectors like`\s` to find spaces in a string.
-
-It is used like this:
-
-`/\s+/g`
+# Find White Space with Regular Expressions
+We can also use selectors like`\s` to find spaces in a string.
+
+It is used like this:
+
+`/\s+/g`
diff --git a/Waypoint-Generate-Random-Fractions-with-JavaScript.md b/Waypoint-Generate-Random-Fractions-with-JavaScript.md
index ae7e673..a59e6c9 100644
--- a/Waypoint-Generate-Random-Fractions-with-JavaScript.md
+++ b/Waypoint-Generate-Random-Fractions-with-JavaScript.md
@@ -1,2 +1,2 @@
-# Generate Random Fractions with JavaScript
-JavaScript has a `Math.random()` function that generates a random decimal number.
+# Generate Random Fractions with JavaScript
+JavaScript has a `Math.random()` function that generates a random decimal number.
diff --git a/Waypoint-Generate-Random-Whole-Numbers-with-JavaScript.md b/Waypoint-Generate-Random-Whole-Numbers-with-JavaScript.md
index 87d0fb0..06728b3 100644
--- a/Waypoint-Generate-Random-Whole-Numbers-with-JavaScript.md
+++ b/Waypoint-Generate-Random-Whole-Numbers-with-JavaScript.md
@@ -1,5 +1,5 @@
-It's great that we can create random decimal numbers, but it's even more useful if we lot more useful to generate a random whole number.
-
-To achieve this we can multiply the random number by ten and use the `Math.floor()` to convert the decimal number to a whole number
-
+It's great that we can create random decimal numbers, but it's even more useful if we lot more useful to generate a random whole number.
+
+To achieve this we can multiply the random number by ten and use the `Math.floor()` to convert the decimal number to a whole number
+
 `Math.floor(Math.random()*10)`
\ No newline at end of file
diff --git a/Waypoint-Generate-Random-Whole-Numbers-within-a-Range.md b/Waypoint-Generate-Random-Whole-Numbers-within-a-Range.md
index 563fa74..b338c00 100644
--- a/Waypoint-Generate-Random-Whole-Numbers-within-a-Range.md
+++ b/Waypoint-Generate-Random-Whole-Numbers-within-a-Range.md
@@ -1,55 +1,55 @@
-# Generate Random Whole Numbers within a Range
-> We can use a certain mathematical expression to get a random number between two numbers.
-
-`Math.floor(Math.random() * (max - min + 1)) + min`
-
-**See Also:** :scroll: [**Explanation**](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Generate-Random-Whole-Numbers-within-a-Range#explanation) | [Explanation in SO](https://stackoverflow.com/questions/1527803/generating-random-numbers-in-javascript-in-a-specific-range/1527820#1527820)
-
-## Explanation
-> `Math.random()` creates a floating point number between `0` (inclusive) and `1` (exclusive)
-
-**Q:** Create a random **whole** number between `2` (inclusive, min) and `6` (inclusive, max) i.e. create a random *whole* number between `min` (*inclusive*) and max (*inclusive*)
-
-**A:** `Math.floor(Math.random() * (6 - 2 + 1)) + 2`
-
-Let's write `Math.random() * max` which creates a floating point number between `0` (inclusive) and `max` (*exclusive*).
-
-E.g. `Math.random() * 6` generates a random floating point number between `0` (inclusive) and `6` (*exclusive*).
-
-----
-
-But we need to generate a whole number between `0` (*inclusive*) and `max` (*inclusive*) first. So we do a trick :wink:. 
-
-What if we create a number between `0` and `max + 1`. That way, we also include the `max` number. And then apply the `Math.floor` method on the result to get a whole number between **`0`** (*inclusive*, min) and `max` (*inclusive*).
-
-We can write it as `Math.floor(Math.random() * (max + 1))`. 
-
-E.g. `Math.floor(Math.random() * (6 + 1))` generates a random floating point number between **`0`** (*inclusive*, min) and **`6`** (*inclusive*, max).
-
-**`0 1 2 3 4 5 6`**
-
-> The `Math.random() * (6 + 1)` part generates a floating point number between `0` (*inclusive*) and `7` (*exclusive*).
-
-**`0..1..2..3..4..5..6..`**
-
-----
-
-But that doesn't solve our given question yet :disappointed:. We need to generate a random whole number between **`min`** (*inclusive*) and `max` (*inclusive*). So we need another trick :wink:. 
-
-What if we write `Math.floor(Math.random() * ((max + 1) - min))` that will generate a whole number between `0` and `(max + 1) - min`.
-
-E.g. `Math.floor(Math.random() * ((6 + 1) - 2))` **=** `Math.floor(Math.random() * 5)` that will generate a whole number between `0` (inclusive) and `4` (inclusive).
-
-**`0 1 2 3 4`**
-
-----
-
-But still the question is unsolved :disappointed:. We need the random number between `min` (**inclusive**) and `max` (**inclusive**).
-
-So we simply write `Math.floor(Math.random() * ((max + 1) - min)) + min` :stuck_out_tongue_winking_eye:. 
-
-E.g. `Math.floor(Math.random() * ((6 + 1) - 2)) + 2` **=** `Math.floor(Math.random() * 5) + 2`
-
-**`2 3 4 5 6`**
-
+# Generate Random Whole Numbers within a Range
+> We can use a certain mathematical expression to get a random number between two numbers.
+
+`Math.floor(Math.random() * (max - min + 1)) + min`
+
+**See Also:** :scroll: [**Explanation**](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Generate-Random-Whole-Numbers-within-a-Range#explanation) | [Explanation in SO](https://stackoverflow.com/questions/1527803/generating-random-numbers-in-javascript-in-a-specific-range/1527820#1527820)
+
+## Explanation
+> `Math.random()` creates a floating point number between `0` (inclusive) and `1` (exclusive)
+
+**Q:** Create a random **whole** number between `2` (inclusive, min) and `6` (inclusive, max) i.e. create a random *whole* number between `min` (*inclusive*) and max (*inclusive*)
+
+**A:** `Math.floor(Math.random() * (6 - 2 + 1)) + 2`
+
+Let's write `Math.random() * max` which creates a floating point number between `0` (inclusive) and `max` (*exclusive*).
+
+E.g. `Math.random() * 6` generates a random floating point number between `0` (inclusive) and `6` (*exclusive*).
+
+----
+
+But we need to generate a whole number between `0` (*inclusive*) and `max` (*inclusive*) first. So we do a trick :wink:. 
+
+What if we create a number between `0` and `max + 1`. That way, we also include the `max` number. And then apply the `Math.floor` method on the result to get a whole number between **`0`** (*inclusive*, min) and `max` (*inclusive*).
+
+We can write it as `Math.floor(Math.random() * (max + 1))`. 
+
+E.g. `Math.floor(Math.random() * (6 + 1))` generates a random floating point number between **`0`** (*inclusive*, min) and **`6`** (*inclusive*, max).
+
+**`0 1 2 3 4 5 6`**
+
+> The `Math.random() * (6 + 1)` part generates a floating point number between `0` (*inclusive*) and `7` (*exclusive*).
+
+**`0..1..2..3..4..5..6..`**
+
+----
+
+But that doesn't solve our given question yet :disappointed:. We need to generate a random whole number between **`min`** (*inclusive*) and `max` (*inclusive*). So we need another trick :wink:. 
+
+What if we write `Math.floor(Math.random() * ((max + 1) - min))` that will generate a whole number between `0` and `(max + 1) - min`.
+
+E.g. `Math.floor(Math.random() * ((6 + 1) - 2))` **=** `Math.floor(Math.random() * 5)` that will generate a whole number between `0` (inclusive) and `4` (inclusive).
+
+**`0 1 2 3 4`**
+
+----
+
+But still the question is unsolved :disappointed:. We need the random number between `min` (**inclusive**) and `max` (**inclusive**).
+
+So we simply write `Math.floor(Math.random() * ((max + 1) - min)) + min` :stuck_out_tongue_winking_eye:. 
+
+E.g. `Math.floor(Math.random() * ((6 + 1) - 2)) + 2` **=** `Math.floor(Math.random() * 5) + 2`
+
+**`2 3 4 5 6`**
+
 **Now this answers our given question. `Math.floor(Math.random() * (max - min + 1) + min` correctly generates a random number between `min` (*inclusive*) and `max` (*inclusive*) i.e. it generates a random whole number between `2` (inclusive) and `6` (inclusive).** :smiley:
\ No newline at end of file
diff --git a/Waypoint-Give-Each-Element-a-Unique-ID.md b/Waypoint-Give-Each-Element-a-Unique-ID.md
index 48a48d1..0f7d860 100644
--- a/Waypoint-Give-Each-Element-a-Unique-ID.md
+++ b/Waypoint-Give-Each-Element-a-Unique-ID.md
@@ -1,2 +1,2 @@
-# Give Each Element a Unique ID
-We will also want to be able to use jQuery to target each button by its unique id. So we add an unique id to each button.
+# Give Each Element a Unique ID
+We will also want to be able to use jQuery to target each button by its unique id. So we add an unique id to each button.
diff --git a/Waypoint-Give-a-Background-Color-to-a-Div-Element.md b/Waypoint-Give-a-Background-Color-to-a-Div-Element.md
index 485a99e..44ff8d4 100644
--- a/Waypoint-Give-a-Background-Color-to-a-Div-Element.md
+++ b/Waypoint-Give-a-Background-Color-to-a-Div-Element.md
@@ -1,3 +1,3 @@
-You can set an element's background color with the `background-color` attribute.
-
+You can set an element's background color with the `background-color` attribute.
+
 For example, if you wanted an element's background color to be green, you'd use `.green-background { background-color: green; }` within your `style` element.
\ No newline at end of file
diff --git a/Waypoint-Give-your-JavaScript-Slot-Machine-some-stylish-images.md b/Waypoint-Give-your-JavaScript-Slot-Machine-some-stylish-images.md
index 2841a52..019eadd 100644
--- a/Waypoint-Give-your-JavaScript-Slot-Machine-some-stylish-images.md
+++ b/Waypoint-Give-your-JavaScript-Slot-Machine-some-stylish-images.md
@@ -1,6 +1,6 @@
-# Give your JavaScript Slot Machine some stylish images
-We've already set up the images for you in an array called images. We can use different indexes to grab each of these.
-
-Here's how we would set the first slot to show a different image depending on which number its random number generates:
-
-`$($('.slot')[0]).html('<img src = "' + images[slotOne-1] + '">');`
+# Give your JavaScript Slot Machine some stylish images
+We've already set up the images for you in an array called images. We can use different indexes to grab each of these.
+
+Here's how we would set the first slot to show a different image depending on which number its random number generates:
+
+`$($('.slot')[0]).html('<img src = "' + images[slotOne-1] + '">');`
diff --git a/Waypoint-Headline-with-the-h2-Element.md b/Waypoint-Headline-with-the-h2-Element.md
index ec850b7..2725593 100644
--- a/Waypoint-Headline-with-the-h2-Element.md
+++ b/Waypoint-Headline-with-the-h2-Element.md
@@ -1,6 +1,6 @@
-You can create different levels of Heading elements by using **h1, h2, h3, h4, h5, h6** which will result on different sizes.
-
-```
-<h1>Hello World</h1>
-<h2>CatPhotoApp</h2>
+You can create different levels of Heading elements by using **h1, h2, h3, h4, h5, h6** which will result on different sizes.
+
+```
+<h1>Hello World</h1>
+<h2>CatPhotoApp</h2>
 ```
\ No newline at end of file
diff --git a/Waypoint-House-our-page-within-a-Bootstrap-Container-Fluid-Div.md b/Waypoint-House-our-page-within-a-Bootstrap-Container-Fluid-Div.md
index 2ba35d9..7aac302 100644
--- a/Waypoint-House-our-page-within-a-Bootstrap-Container-Fluid-Div.md
+++ b/Waypoint-House-our-page-within-a-Bootstrap-Container-Fluid-Div.md
@@ -1,8 +1,8 @@
-# House our page within a Bootstrap Container Fluid Div
-To make the content responsive, we use the `container-fluid` class.
-
-```
-<div class="container-fluid">
-<h3 class="text-primary text-center">jQuery Playground</h3>
-</div>
-```
+# House our page within a Bootstrap Container Fluid Div
+To make the content responsive, we use the `container-fluid` class.
+
+```
+<div class="container-fluid">
+<h3 class="text-primary text-center">jQuery Playground</h3>
+</div>
+```
diff --git a/Waypoint-Inform-with-the-Paragraph-Element.md b/Waypoint-Inform-with-the-Paragraph-Element.md
index b6d2352..b5b8b04 100644
--- a/Waypoint-Inform-with-the-Paragraph-Element.md
+++ b/Waypoint-Inform-with-the-Paragraph-Element.md
@@ -1,9 +1,9 @@
-`p` elements are the preferred element for normal-sized paragraph text on websites. P is short for "paragraph".
-
-You can create a p element like so: `<p>I'm a p tag!</p>`.
-
-```
-<h1>Hello World</h1>
-<h2>CatPhotoApp</h2>
-<p>Hello Paragraph</p>
+`p` elements are the preferred element for normal-sized paragraph text on websites. P is short for "paragraph".
+
+You can create a p element like so: `<p>I'm a p tag!</p>`.
+
+```
+<h1>Hello World</h1>
+<h2>CatPhotoApp</h2>
+<p>Hello Paragraph</p>
 ```
\ No newline at end of file
diff --git a/Waypoint-Inherit-Styles-from-the-Body-Element.md b/Waypoint-Inherit-Styles-from-the-Body-Element.md
index f1a351a..4b63542 100644
--- a/Waypoint-Inherit-Styles-from-the-Body-Element.md
+++ b/Waypoint-Inherit-Styles-from-the-Body-Element.md
@@ -1,13 +1,13 @@
-The `body` element can be style just like any other.
-
-```
-<style>
-  body {
-    background-color: black;
-    color: green;
-    font-family: Monospace
-  }
-
-</style>
-<h1>Hello World</h1>
+The `body` element can be style just like any other.
+
+```
+<style>
+  body {
+    background-color: black;
+    color: green;
+    font-family: Monospace
+  }
+
+</style>
+<h1>Hello World</h1>
 ```
\ No newline at end of file
diff --git a/Waypoint-Invert-Regular-Expression-Matches-with-JavaScript.md b/Waypoint-Invert-Regular-Expression-Matches-with-JavaScript.md
index a762c4a..bc66487 100644
--- a/Waypoint-Invert-Regular-Expression-Matches-with-JavaScript.md
+++ b/Waypoint-Invert-Regular-Expression-Matches-with-JavaScript.md
@@ -1,4 +1,4 @@
-# Invert Regular Expression Matches with JavaScript
-Use`/\S/gi`; to match everything that isn't a space in the string.
-
-You can invert any match by using the uppercase version of the selector `\s` versus `\S` for example.
+# Invert Regular Expression Matches with JavaScript
+Use`/\S/gi`; to match everything that isn't a space in the string.
+
+You can invert any match by using the uppercase version of the selector `\s` versus `\S` for example.
diff --git a/Waypoint-Iterate-over-Arrays-with-map.md b/Waypoint-Iterate-over-Arrays-with-map.md
index af52709..d3ad86a 100644
--- a/Waypoint-Iterate-over-Arrays-with-map.md
+++ b/Waypoint-Iterate-over-Arrays-with-map.md
@@ -1,10 +1,10 @@
-Using *map* is the best way to iterate through an array or object. Map uses a function to pretty much do whatever you want it to do. It will pass each value to the callback function.
-
-```
-//Use map to add three to each value in the array
-var array = [1,2,3,4,5];
-
-array = array.map(function(val){
-  return val + 3;
-});
+Using *map* is the best way to iterate through an array or object. Map uses a function to pretty much do whatever you want it to do. It will pass each value to the callback function.
+
+```
+//Use map to add three to each value in the array
+var array = [1,2,3,4,5];
+
+array = array.map(function(val){
+  return val + 3;
+});
 ```
\ No newline at end of file
diff --git a/Waypoint-Iterate-with-JavaScript-For-Loops.md b/Waypoint-Iterate-with-JavaScript-For-Loops.md
index 04d824b..e6d1871 100644
--- a/Waypoint-Iterate-with-JavaScript-For-Loops.md
+++ b/Waypoint-Iterate-with-JavaScript-For-Loops.md
@@ -1,23 +1,23 @@
-# Iterate with JavaScript For Loops
-The most common type of JavaScript loop is called a `for loop` because it runs `for` a specific number of times.
-
-```
-var ourArray = [];
-for(var i = 0; i < 5; i++) {
-  ourArray.push(i);
-}
-```
-
-ourArray will now contain [0,1,2,3,4]
-
-## More about for loops
-```
-for(var i = 0; i < 5; i++) {  // There are 3 parts here
-```
-There are three parts to for loop.  They are separated by semicolons.  
-
-1. The initialization: `var i = 0;` - This code runs only once at the start of the loop. It's usually used to declare the counter variable (with `var`) and initialize the counter (in this case it is set to 0).   
-
-2. The condition: `i < 5;` - The loop will run as long as this is `true`. That means that as soon as `i` is equal to 5, the loop will stop looping.  Note that the inside of the loop will never see `i` as 5 because it will stop before then.  If this condition is initially `false`, the loop will never execute.  
-
+# Iterate with JavaScript For Loops
+The most common type of JavaScript loop is called a `for loop` because it runs `for` a specific number of times.
+
+```
+var ourArray = [];
+for(var i = 0; i < 5; i++) {
+  ourArray.push(i);
+}
+```
+
+ourArray will now contain [0,1,2,3,4]
+
+## More about for loops
+```
+for(var i = 0; i < 5; i++) {  // There are 3 parts here
+```
+There are three parts to for loop.  They are separated by semicolons.  
+
+1. The initialization: `var i = 0;` - This code runs only once at the start of the loop. It's usually used to declare the counter variable (with `var`) and initialize the counter (in this case it is set to 0).   
+
+2. The condition: `i < 5;` - The loop will run as long as this is `true`. That means that as soon as `i` is equal to 5, the loop will stop looping.  Note that the inside of the loop will never see `i` as 5 because it will stop before then.  If this condition is initially `false`, the loop will never execute.  
+
 3. The increment: `i++` - This code is run at the end of each loop. It's usually a simple increment (`++` operator), but can really be any mathematical transformation. It is used to move the counter (`i`) forward (or backwards, or whatever.
\ No newline at end of file
diff --git a/Waypoint-Iterate-with-JavaScript-While-Loops.md b/Waypoint-Iterate-with-JavaScript-While-Loops.md
index f119570..c6fa265 100644
--- a/Waypoint-Iterate-with-JavaScript-While-Loops.md
+++ b/Waypoint-Iterate-with-JavaScript-While-Loops.md
@@ -1,11 +1,11 @@
-# Iterate with JavaScript While Loops
-Another type of JavaScript loop is called a `while loop` because it runs `while` something is true, and stops once that something is no longer true.
-
-```
-var ourArray = [];
-var i = 0;
-while(i < 5) {
-  ourArray.push(i);
-  i++;
-}
-```
+# Iterate with JavaScript While Loops
+Another type of JavaScript loop is called a `while loop` because it runs `while` something is true, and stops once that something is no longer true.
+
+```
+var ourArray = [];
+var i = 0;
+while(i < 5) {
+  ourArray.push(i);
+  i++;
+}
+```
diff --git a/Waypoint-Join-Strings-with-.join.md b/Waypoint-Join-Strings-with-.join.md
index c3768d0..78ed7cd 100644
--- a/Waypoint-Join-Strings-with-.join.md
+++ b/Waypoint-Join-Strings-with-.join.md
@@ -1,3 +1,3 @@
-We can use the `.join()` method to join each element in an array into a string separated by whatever delimiter you provide as an argument to the join operation.
-
+We can use the `.join()` method to join each element in an array into a string separated by whatever delimiter you provide as an argument to the join operation.
+
 `var joinMe = joinMe.join(" ");`
\ No newline at end of file
diff --git a/Waypoint-Label-Bootstrap-Buttons.md b/Waypoint-Label-Bootstrap-Buttons.md
index f3c595c..48e9597 100644
--- a/Waypoint-Label-Bootstrap-Buttons.md
+++ b/Waypoint-Label-Bootstrap-Buttons.md
@@ -1,2 +1,2 @@
-# Label Bootstrap Buttons
-Just like we labeled our [wells](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Label-Bootstrap-Wells), we want to label our buttons.
+# Label Bootstrap Buttons
+Just like we labeled our [wells](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Label-Bootstrap-Wells), we want to label our buttons.
diff --git a/Waypoint-Label-Bootstrap-Wells.md b/Waypoint-Label-Bootstrap-Wells.md
index 83f78f2..b18c91c 100644
--- a/Waypoint-Label-Bootstrap-Wells.md
+++ b/Waypoint-Label-Bootstrap-Wells.md
@@ -1,2 +1,2 @@
-# Label Bootstrap Wells
-You can add labels to the wells by using the headers `<h4>` above the well divs.
+# Label Bootstrap Wells
+You can add labels to the wells by using the headers `<h4>` above the well divs.
diff --git a/Waypoint-Learn-how-Script-Tags-and-Document-Ready-Work.md b/Waypoint-Learn-how-Script-Tags-and-Document-Ready-Work.md
index 22f560b..397beaf 100644
--- a/Waypoint-Learn-how-Script-Tags-and-Document-Ready-Work.md
+++ b/Waypoint-Learn-how-Script-Tags-and-Document-Ready-Work.md
@@ -1,12 +1,12 @@
-# Learn how Script Tags and Document Ready Work
-For some reason FCC likes to introduce `jQuery` before JavaScript itself.
-
-To add JS to your HTML, you need a `script` tag.  Your browser will run any JavaScript inside a script element, including jQuery.
-
-Inside your script element, add this code: `$(document).ready(function() {` to your script. Then close it on the following line (still inside your script element) with: `});`
-
-```
-<script> $(document).ready(function(){
-
-});</script>
-```
+# Learn how Script Tags and Document Ready Work
+For some reason FCC likes to introduce `jQuery` before JavaScript itself.
+
+To add JS to your HTML, you need a `script` tag.  Your browser will run any JavaScript inside a script element, including jQuery.
+
+Inside your script element, add this code: `$(document).ready(function() {` to your script. Then close it on the following line (still inside your script element) with: `});`
+
+```
+<script> $(document).ready(function(){
+
+});</script>
+```
diff --git a/Waypoint-Line-up-Form-Elements-Responsively-with-Bootstrap.md b/Waypoint-Line-up-Form-Elements-Responsively-with-Bootstrap.md
index 570c45f..3b7561b 100644
--- a/Waypoint-Line-up-Form-Elements-Responsively-with-Bootstrap.md
+++ b/Waypoint-Line-up-Form-Elements-Responsively-with-Bootstrap.md
@@ -1,9 +1,9 @@
-# Line up Form Elements Responsively with Bootstrap
-We line up the form elements the same way we do with others, using divs.
-
-```
-<div class="row">
-<div class="col-xs-7"><input type="text" class="form-control" placeholder="cat photo URL" required></div>
-<div class=col-xs-5><button type="submit" class="btn btn-primary"><i class="fa fa-paper-plane"></i> Submit</button></div>
-</div>
-```
+# Line up Form Elements Responsively with Bootstrap
+We line up the form elements the same way we do with others, using divs.
+
+```
+<div class="row">
+<div class="col-xs-7"><input type="text" class="form-control" placeholder="cat photo URL" required></div>
+<div class=col-xs-5><button type="submit" class="btn btn-primary"><i class="fa fa-paper-plane"></i> Submit</button></div>
+</div>
+```
diff --git a/Waypoint-Link-to-External-Pages-with-Anchor-Elements.md b/Waypoint-Link-to-External-Pages-with-Anchor-Elements.md
index 2de3127..8f90a90 100644
--- a/Waypoint-Link-to-External-Pages-with-Anchor-Elements.md
+++ b/Waypoint-Link-to-External-Pages-with-Anchor-Elements.md
@@ -1,3 +1,3 @@
-`a` elements, also known as anchor elements, are used to link to content outside of the current page.
-
+`a` elements, also known as anchor elements, are used to link to content outside of the current page.
+
 Here's an example: `<p>Here's a <a href="http://freecodecamp.com"> link to Free Code Camp</a> for you to follow.</p>`.
\ No newline at end of file
diff --git a/Waypoint-Make-Circular-Images-with-a-Border-Radius.md b/Waypoint-Make-Circular-Images-with-a-Border-Radius.md
index 9c257d4..844da6c 100644
--- a/Waypoint-Make-Circular-Images-with-a-Border-Radius.md
+++ b/Waypoint-Make-Circular-Images-with-a-Border-Radius.md
@@ -1,10 +1,10 @@
-You can also use percentage to `border-radius` to make things round.
-
-```
-.thick-green-border {
-  border-color: green;
-  border-width: 10px;
-  border-style: solid;
-  border-radius: 50%;
-}
+You can also use percentage to `border-radius` to make things round.
+
+```
+.thick-green-border {
+  border-color: green;
+  border-width: 10px;
+  border-style: solid;
+  border-radius: 50%;
+}
 ```
\ No newline at end of file
diff --git a/Waypoint-Make-Dead-Links-using-the-Hash-Symbol.md b/Waypoint-Make-Dead-Links-using-the-Hash-Symbol.md
index f349923..47cda58 100644
--- a/Waypoint-Make-Dead-Links-using-the-Hash-Symbol.md
+++ b/Waypoint-Make-Dead-Links-using-the-Hash-Symbol.md
@@ -1,3 +1,3 @@
-Replace your a element's `href` attribute with a `#`, also known as a hash symbol, to turn it into a dead link. Sometimes you want to add a elements to your website before you know where they will link.
-
+Replace your a element's `href` attribute with a `#`, also known as a hash symbol, to turn it into a dead link. Sometimes you want to add a elements to your website before you know where they will link.
+
 This is also handy when you're changing the behavior of a link using jQuery, which we'll learn about later.
\ No newline at end of file
diff --git a/Waypoint-Make-Images-Mobile-Responsive.md b/Waypoint-Make-Images-Mobile-Responsive.md
index 95c4be6..d087ef5 100644
--- a/Waypoint-Make-Images-Mobile-Responsive.md
+++ b/Waypoint-Make-Images-Mobile-Responsive.md
@@ -1,2 +1,2 @@
-# Make Images Mobile Responsive
-When using Bootstrap, if you want an image to be responsive, all you have to do is add the class `img-responsive` to it. `<img class="img-responsive" src="http://bit.ly/fcc-running-cats">`
+# Make Images Mobile Responsive
+When using Bootstrap, if you want an image to be responsive, all you have to do is add the class `img-responsive` to it. `<img class="img-responsive" src="http://bit.ly/fcc-running-cats">`
diff --git a/Waypoint-Make-Instances-of-Objects-with-a-Constructor-Function.md b/Waypoint-Make-Instances-of-Objects-with-a-Constructor-Function.md
index 402a8ab..a75128c 100644
--- a/Waypoint-Make-Instances-of-Objects-with-a-Constructor-Function.md
+++ b/Waypoint-Make-Instances-of-Objects-with-a-Constructor-Function.md
@@ -1,15 +1,15 @@
-A function that creates objects is called a _constructor_, my favorite way of creating objects when you have to create more than one of the same object. You can also edit the second object to add more properties if needed. This is called creating _instances_ of an object.
-
-Each new instance of this object inherits all the properties and methods of your original object.
-
-```
-var Car = function() {
-   this.wheels = 4;
-};
-
-// New instance of Car object.
-var myCar = new Car();
-
-//Add the property "engines" to myCar, and make it a number.
-myCar.engines = 1;
+A function that creates objects is called a _constructor_, my favorite way of creating objects when you have to create more than one of the same object. You can also edit the second object to add more properties if needed. This is called creating _instances_ of an object.
+
+Each new instance of this object inherits all the properties and methods of your original object.
+
+```
+var Car = function() {
+   this.wheels = 4;
+};
+
+// New instance of Car object.
+var myCar = new Car();
+
+//Add the property "engines" to myCar, and make it a number.
+myCar.engines = 1;
 ```
\ No newline at end of file
diff --git a/Waypoint-Make-Object-Properties-Private.md b/Waypoint-Make-Object-Properties-Private.md
index 339a436..380f825 100644
--- a/Waypoint-Make-Object-Properties-Private.md
+++ b/Waypoint-Make-Object-Properties-Private.md
@@ -1,19 +1,19 @@
-Objects have their own attributes, called _properties_, and their own functions, called _methods_.
-
-You can use the `this` keyword to reference _public properties and methods_ of the current objects. However, when You need to create private ones, so they are not accessible from the outside of the object.
-
-For that, you just remove the keyword `this` from the object property or method declaration.
-
-```
-var Bike = function() {
-  speed = 100; // private
-  function addUnit(value) { // private
-    return value + "KM/H";
-  }
-
-  this.getSpeed = function () {  // public
-    return addUnit(speed);
-  };
-
-};
+Objects have their own attributes, called _properties_, and their own functions, called _methods_.
+
+You can use the `this` keyword to reference _public properties and methods_ of the current objects. However, when You need to create private ones, so they are not accessible from the outside of the object.
+
+For that, you just remove the keyword `this` from the object property or method declaration.
+
+```
+var Bike = function() {
+  speed = 100; // private
+  function addUnit(value) { // private
+    return value + "KM/H";
+  }
+
+  this.getSpeed = function () {  // public
+    return addUnit(speed);
+  };
+
+};
 ```
\ No newline at end of file
diff --git a/Waypoint-Manipulate-Arrays-With-pop().md b/Waypoint-Manipulate-Arrays-With-pop().md
index e361283..25bd07c 100644
--- a/Waypoint-Manipulate-Arrays-With-pop().md
+++ b/Waypoint-Manipulate-Arrays-With-pop().md
@@ -1,6 +1,6 @@
-# Manipulate Arrays With pop()
-Another way to change the data in an array is with the `.pop()` function.
-
-`.pop()` is used to "pop" a value off of the end of an array. We can retrieve this value by performing `pop()` in a variable declaration.
-
-Any type of variable can be "popped" off of an array.
+# Manipulate Arrays With pop()
+Another way to change the data in an array is with the `.pop()` function.
+
+`.pop()` is used to "pop" a value off of the end of an array. We can retrieve this value by performing `pop()` in a variable declaration.
+
+Any type of variable can be "popped" off of an array.
diff --git a/Waypoint-Manipulate-Arrays-With-push().md b/Waypoint-Manipulate-Arrays-With-push().md
index 9710da7..495e07a 100644
--- a/Waypoint-Manipulate-Arrays-With-push().md
+++ b/Waypoint-Manipulate-Arrays-With-push().md
@@ -1,4 +1,4 @@
-# Manipulate Arrays With push()
-Not only can you `pop()` data off of the end of an array, you can also `push()` data onto the end of an array.
-
-`myArray.push(["dog", 3]);`
+# Manipulate Arrays With push()
+Not only can you `pop()` data off of the end of an array, you can also `push()` data onto the end of an array.
+
+`myArray.push(["dog", 3]);`
diff --git a/Waypoint-Manipulate-Arrays-With-shift().md b/Waypoint-Manipulate-Arrays-With-shift().md
index dee96ff..8bdd6e2 100644
--- a/Waypoint-Manipulate-Arrays-With-shift().md
+++ b/Waypoint-Manipulate-Arrays-With-shift().md
@@ -1,2 +1,2 @@
-# Manipulate Arrays With shift()
-`shift()` removes the first element unlike `pop()` which removes the last.
+# Manipulate Arrays With shift()
+`shift()` removes the first element unlike `pop()` which removes the last.
diff --git a/Waypoint-Manipulate-Arrays-With-unshift().md b/Waypoint-Manipulate-Arrays-With-unshift().md
index 6cad655..d62b9eb 100644
--- a/Waypoint-Manipulate-Arrays-With-unshift().md
+++ b/Waypoint-Manipulate-Arrays-With-unshift().md
@@ -1,2 +1,2 @@
-# Manipulate Arrays With unshift()
-`myArray.unshift('Paul');` Basically you call `unshift` and pass what was deleted.
+# Manipulate Arrays With unshift()
+`myArray.unshift('Paul');` Basically you call `unshift` and pass what was deleted.
diff --git a/Waypoint-Manipulate-JavaScript-Objects.md b/Waypoint-Manipulate-JavaScript-Objects.md
index 530f07f..4a398a3 100644
--- a/Waypoint-Manipulate-JavaScript-Objects.md
+++ b/Waypoint-Manipulate-JavaScript-Objects.md
@@ -1,8 +1,8 @@
-# Manipulate JavaScript Objects
-We can add properties to objects like this:
-
-`myObject.myProperty = "myValue";`
-
-We can also delete them like this:
-
-`delete(myObject.myProperty);`
+# Manipulate JavaScript Objects
+We can add properties to objects like this:
+
+`myObject.myProperty = "myValue";`
+
+We can also delete them like this:
+
+`delete(myObject.myProperty);`
diff --git a/Waypoint-Modify-Array-Data-With-Indexes.md b/Waypoint-Modify-Array-Data-With-Indexes.md
index f670f23..5c2786a 100644
--- a/Waypoint-Modify-Array-Data-With-Indexes.md
+++ b/Waypoint-Modify-Array-Data-With-Indexes.md
@@ -1,9 +1,9 @@
-# Modify Array Data With Indexes
-We can also modify the data stored in arrays by using indexes.
-
-For example:
-
-```
-var ourArray = [3,2,1];
-ourArray[0] = 1; // equals [1,2,1]
-```
+# Modify Array Data With Indexes
+We can also modify the data stored in arrays by using indexes.
+
+For example:
+
+```
+var ourArray = [3,2,1];
+ourArray[0] = 1; // equals [1,2,1]
+```
diff --git a/Waypoint-Multiply-Two-Numbers-with-JavaScript.md b/Waypoint-Multiply-Two-Numbers-with-JavaScript.md
index cc4071c..eebd6c0 100644
--- a/Waypoint-Multiply-Two-Numbers-with-JavaScript.md
+++ b/Waypoint-Multiply-Two-Numbers-with-JavaScript.md
@@ -1,4 +1,4 @@
-# Multiply Two Numbers with JavaScript
-JavaScript uses use the `*` symbol for multiplication.
-
-`var product = 8 * 10;`
+# Multiply Two Numbers with JavaScript
+JavaScript uses use the `*` symbol for multiplication.
+
+`var product = 8 * 10;`
diff --git a/Waypoint-Nest-Many-Elements-within-a-Single-Div-Element.md b/Waypoint-Nest-Many-Elements-within-a-Single-Div-Element.md
index 931ab29..009127b 100644
--- a/Waypoint-Nest-Many-Elements-within-a-Single-Div-Element.md
+++ b/Waypoint-Nest-Many-Elements-within-a-Single-Div-Element.md
@@ -1,23 +1,23 @@
-The `div` element, also known as a division element, is a general purpose container for other elements.
-
-The div element is probably the most commonly used HTML element of all. It's useful for passing the CSS of its own class declarations down to all the elements that it contains.
-
-Just like any other non-self-closing element, you can open a `div` element with `<div>` and close it on another line with `</div>`.
-
-```
-<div>
- <p>Things cats love:</p>
- <ul>
-   <li>cat nip</li>
-   <li>laser pointers</li>
-   <li>lasagna</li>
- </ul>
- <p>Top 3 things cats hate:</p>
- <ol>
-   <li>flea treatment</li>
-   <li>thunder</li>
-   <li>other cats</li>
- </ol>
-</div>
->
+The `div` element, also known as a division element, is a general purpose container for other elements.
+
+The div element is probably the most commonly used HTML element of all. It's useful for passing the CSS of its own class declarations down to all the elements that it contains.
+
+Just like any other non-self-closing element, you can open a `div` element with `<div>` and close it on another line with `</div>`.
+
+```
+<div>
+ <p>Things cats love:</p>
+ <ul>
+   <li>cat nip</li>
+   <li>laser pointers</li>
+   <li>lasagna</li>
+ </ul>
+ <p>Top 3 things cats hate:</p>
+ <ol>
+   <li>flea treatment</li>
+   <li>thunder</li>
+   <li>other cats</li>
+ </ol>
+</div>
+>
 ```
\ No newline at end of file
diff --git a/Waypoint-Nest-one-Array-within-Another-Array.md b/Waypoint-Nest-one-Array-within-Another-Array.md
index acbfa1f..fc091a7 100644
--- a/Waypoint-Nest-one-Array-within-Another-Array.md
+++ b/Waypoint-Nest-one-Array-within-Another-Array.md
@@ -1,2 +1,2 @@
-# Nest one Array within Another Array
-You can nest arrays within other arrays, like this:`[["Bulls", 43]]`.
+# Nest one Array within Another Array
+You can nest arrays within other arrays, like this:`[["Bulls", 43]]`.
diff --git a/Waypoint-Override-All-Other-Styles-by-using-Important.md b/Waypoint-Override-All-Other-Styles-by-using-Important.md
index 16a4f56..3067a58 100644
--- a/Waypoint-Override-All-Other-Styles-by-using-Important.md
+++ b/Waypoint-Override-All-Other-Styles-by-using-Important.md
@@ -1,3 +1,3 @@
-In many situations, you will use CSS libraries. These may accidentally override your own CSS. So when you absolutely need to be sure that an element has specific CSS, you can use !important.
-
+In many situations, you will use CSS libraries. These may accidentally override your own CSS. So when you absolutely need to be sure that an element has specific CSS, you can use !important.
+
 An example of how to do this is: `color: red !important;` This will make sure that we use the wanted property regardless of other overrides.
\ No newline at end of file
diff --git a/Waypoint-Override-Class-Declarations-by-Styling-ID-Attributes.md b/Waypoint-Override-Class-Declarations-by-Styling-ID-Attributes.md
index ff65d8a..069ef4e 100644
--- a/Waypoint-Override-Class-Declarations-by-Styling-ID-Attributes.md
+++ b/Waypoint-Override-Class-Declarations-by-Styling-ID-Attributes.md
@@ -1,19 +1,19 @@
-We can use `id` to override  styling too.
-
-```
-<style>
-  body {
-    background-color: black;
-    font-family: Monospace;
-    color: green;
-  }
-  .pink-text {
-    color: pink;
-  }
-  .blue-text {
-    color: blue;
-  }
-  #orange-text{color:orange;}
-</style>
-<h1 class="pink-text blue-text" id="orange-text">Hello World!</h1>
+We can use `id` to override  styling too.
+
+```
+<style>
+  body {
+    background-color: black;
+    font-family: Monospace;
+    color: green;
+  }
+  .pink-text {
+    color: pink;
+  }
+  .blue-text {
+    color: blue;
+  }
+  #orange-text{color:orange;}
+</style>
+<h1 class="pink-text blue-text" id="orange-text">Hello World!</h1>
 ```
\ No newline at end of file
diff --git a/Waypoint-Perform-Arithmetic-Operations-on-Decimals-with-JavaScript.md b/Waypoint-Perform-Arithmetic-Operations-on-Decimals-with-JavaScript.md
index b9bab53..d28dfc5 100644
--- a/Waypoint-Perform-Arithmetic-Operations-on-Decimals-with-JavaScript.md
+++ b/Waypoint-Perform-Arithmetic-Operations-on-Decimals-with-JavaScript.md
@@ -1,4 +1,4 @@
-# Perform Arithmetic Operations on Decimals with JavaScript
-In JavaScript, you can perform calculations with decimal numbers, just like whole numbers.
-
-`var quotient = 4.4 / 2.0; // equals 2.2`
+# Perform Arithmetic Operations on Decimals with JavaScript
+In JavaScript, you can perform calculations with decimal numbers, just like whole numbers.
+
+`var quotient = 4.4 / 2.0; // equals 2.2`
diff --git a/Waypoint-Prioritize-One-Style-Over-Another.md b/Waypoint-Prioritize-One-Style-Over-Another.md
index ba1e66d..e7999f5 100644
--- a/Waypoint-Prioritize-One-Style-Over-Another.md
+++ b/Waypoint-Prioritize-One-Style-Over-Another.md
@@ -1,15 +1,15 @@
-Classes to individual elements take priority over general styles.
-
-```
-<style>
-  body {
-    background-color: black;
-    font-family: Monospace;
-    color: green;
-  }
-  .pink-text{color: pink;}
-</style>
-<h1 class="pink-text">Hello World!</h1>
-```
-
+Classes to individual elements take priority over general styles.
+
+```
+<style>
+  body {
+    background-color: black;
+    font-family: Monospace;
+    color: green;
+  }
+  .pink-text{color: pink;}
+</style>
+<h1 class="pink-text">Hello World!</h1>
+```
+
 This makes for a pink h1 instead of a green one.
\ No newline at end of file
diff --git a/Waypoint-Remove-Classes-from-an-element-with-jQuery.md b/Waypoint-Remove-Classes-from-an-element-with-jQuery.md
index 8952c6b..8fa1eac 100644
--- a/Waypoint-Remove-Classes-from-an-element-with-jQuery.md
+++ b/Waypoint-Remove-Classes-from-an-element-with-jQuery.md
@@ -1,4 +1,4 @@
-# Remove Classes from an element with jQuery
-The same way we can add classes using jQuery, we an also remove them with `removeClass()`.
-
-`$("button").removeClass("btn-default");`
+# Remove Classes from an element with jQuery
+The same way we can add classes using jQuery, we an also remove them with `removeClass()`.
+
+`$("button").removeClass("btn-default");`
diff --git a/Waypoint-Remove-an-Element-Using-jQuery.md b/Waypoint-Remove-an-Element-Using-jQuery.md
index 469185f..4493154 100644
--- a/Waypoint-Remove-an-Element-Using-jQuery.md
+++ b/Waypoint-Remove-an-Element-Using-jQuery.md
@@ -1,2 +1,2 @@
-# Remove an Element Using jQuery
-jQuery has a function called `.remove()` that will remove an HTML element entirely. `$("#target4").remove();`
+# Remove an Element Using jQuery
+jQuery has a function called `.remove()` that will remove an HTML element entirely. `$("#target4").remove();`
diff --git a/Waypoint-Responsively-Style-Checkboxes.md b/Waypoint-Responsively-Style-Checkboxes.md
index 7fd6c22..053a2cb 100644
--- a/Waypoint-Responsively-Style-Checkboxes.md
+++ b/Waypoint-Responsively-Style-Checkboxes.md
@@ -1,4 +1,4 @@
-# Responsively Style Checkboxes
-You can use Bootstrap's `col-xs-*` classes on form elements, too! This way, our checkboxes will be evenly spread out across the page, regardless of how wide the screen resolution is.
-
-Nest all your checkboxes in a `<div class="row">` element. Then nest each of them in a `<div class="col-xs-4">` element.
+# Responsively Style Checkboxes
+You can use Bootstrap's `col-xs-*` classes on form elements, too! This way, our checkboxes will be evenly spread out across the page, regardless of how wide the screen resolution is.
+
+Nest all your checkboxes in a `<div class="row">` element. Then nest each of them in a `<div class="col-xs-4">` element.
diff --git a/Waypoint-Responsively-Style-Radio-Buttons.md b/Waypoint-Responsively-Style-Radio-Buttons.md
index c4cc35a..bb49c4d 100644
--- a/Waypoint-Responsively-Style-Radio-Buttons.md
+++ b/Waypoint-Responsively-Style-Radio-Buttons.md
@@ -1,18 +1,18 @@
-# Responsively Style Radio Buttons
-You can use Bootstrap's `col-xs-*` classes on `form` elements. That will make radio buttons evenly spread out across the page regardless of how wide the screen might be.
-
-Nest all of your radio buttons within a `<div class="row">` element. Then nest each of them within a `<div class="col-xs-6">` element.
-
-```
-<form action="/submit-cat-photo">
-  <div class="row">
-    <div class="col-xs-6"><label><input type="radio" name="indoor-outdoor"> Indoor</label></div>
-    <div class="col-xs-6"><label><input type="radio" name="indoor-outdoor"> Outdoor</label></div>
-    <div class="col-xs-6"><label><input type="checkbox" name="personality"> Loving</label></div>
-    <div class="col-xs-6"><label><input type="checkbox" name="personality"> Lazy</label></div>
-    <div class="col-xs-6"><label><input type="checkbox" name="personality"> Crazy</label></div>
-  </div>
-  <input type="text" placeholder="cat photo URL" required>
-  <button type="submit">Submit</button>
-</form>
-```
+# Responsively Style Radio Buttons
+You can use Bootstrap's `col-xs-*` classes on `form` elements. That will make radio buttons evenly spread out across the page regardless of how wide the screen might be.
+
+Nest all of your radio buttons within a `<div class="row">` element. Then nest each of them within a `<div class="col-xs-6">` element.
+
+```
+<form action="/submit-cat-photo">
+  <div class="row">
+    <div class="col-xs-6"><label><input type="radio" name="indoor-outdoor"> Indoor</label></div>
+    <div class="col-xs-6"><label><input type="radio" name="indoor-outdoor"> Outdoor</label></div>
+    <div class="col-xs-6"><label><input type="checkbox" name="personality"> Loving</label></div>
+    <div class="col-xs-6"><label><input type="checkbox" name="personality"> Lazy</label></div>
+    <div class="col-xs-6"><label><input type="checkbox" name="personality"> Crazy</label></div>
+  </div>
+  <input type="text" placeholder="cat photo URL" required>
+  <button type="submit">Submit</button>
+</form>
+```
diff --git a/Waypoint-Reverse-Arrays-with-reverse.md b/Waypoint-Reverse-Arrays-with-reverse.md
index b3f508d..f105c37 100644
--- a/Waypoint-Reverse-Arrays-with-reverse.md
+++ b/Waypoint-Reverse-Arrays-with-reverse.md
@@ -1,7 +1,7 @@
-You can use the .reverse() function to reverse the contents of an array.
-
-```
-var array = [1,2,3,4,5,6,7];
-
-array = array.reverse();
+You can use the .reverse() function to reverse the contents of an array.
+
+```
+var array = [1,2,3,4,5,6,7];
+
+array = array.reverse();
 ```
\ No newline at end of file
diff --git a/Waypoint-Say-Hello-to-HTML-Elements.md b/Waypoint-Say-Hello-to-HTML-Elements.md
index 530565a..d419a59 100644
--- a/Waypoint-Say-Hello-to-HTML-Elements.md
+++ b/Waypoint-Say-Hello-to-HTML-Elements.md
@@ -1,7 +1,7 @@
-HTML elements are written with a start tag, with an end tag, with the content in between:
-
-`<tagname>content</tagname>` The HTML element is everything from the start tag to the end tag:
-
-`<p>My first HTML paragraph.</p>`
-
+HTML elements are written with a start tag, with an end tag, with the content in between:
+
+`<tagname>content</tagname>` The HTML element is everything from the start tag to the end tag:
+
+`<p>My first HTML paragraph.</p>`
+
 Opening tags look like this: `<h1>`. Closing tags look like this: `</h1>`  Note that the only difference between opening tags and closing tags is that closing tags have a slash after their opening angle bracket.
\ No newline at end of file
diff --git a/Waypoint-Set-the-ID-of-an-Element.md b/Waypoint-Set-the-ID-of-an-Element.md
index 3253028..3ad2d5f 100644
--- a/Waypoint-Set-the-ID-of-an-Element.md
+++ b/Waypoint-Set-the-ID-of-an-Element.md
@@ -1,7 +1,7 @@
-In addition to classes, each HTML element can also have an `id` attribute.
-
-There are several benefits to using id attributes, and you'll learn more about them once you start using jQuery.
-
-`id` attributes should be unique. Browsers won't enforce this, but it is a widely agreed upon best practice. So please don't give more than one element the same id attribute.
-
+In addition to classes, each HTML element can also have an `id` attribute.
+
+There are several benefits to using id attributes, and you'll learn more about them once you start using jQuery.
+
+`id` attributes should be unique. Browsers won't enforce this, but it is a widely agreed upon best practice. So please don't give more than one element the same id attribute.
+
 Here's an example of how you give your h2 element the id of cat-photo-app: <h2 id="cat-photo-app">
\ No newline at end of file
diff --git a/Waypoint-Sift-through-Text-with-Regular-Expressions.md b/Waypoint-Sift-through-Text-with-Regular-Expressions.md
index 7698588..59a47b3 100644
--- a/Waypoint-Sift-through-Text-with-Regular-Expressions.md
+++ b/Waypoint-Sift-through-Text-with-Regular-Expressions.md
@@ -1,13 +1,13 @@
-# Sift through Text with Regular Expressions
-`Regular expressions` are used to find certain words or patterns inside of strings.
-
-Regular expressions are usually surrounded by `/` symbols.
-
-For example, if we wanted to find the number of times the word the occurred in the string The dog chased the cat, we could use the following regular expression: `/the+/gi`
-
-Let's break this down a bit:
-
-the is the pattern we want to match.
-- `+` means we want to find one or more occurrences of this pattern.
-- `g` means that we want to search the entire string for this pattern.
-- `i` means that we want to ignore the case (uppercase or lowercase) when searching for the pattern.
+# Sift through Text with Regular Expressions
+`Regular expressions` are used to find certain words or patterns inside of strings.
+
+Regular expressions are usually surrounded by `/` symbols.
+
+For example, if we wanted to find the number of times the word the occurred in the string The dog chased the cat, we could use the following regular expression: `/the+/gi`
+
+Let's break this down a bit:
+
+the is the pattern we want to match.
+- `+` means we want to find one or more occurrences of this pattern.
+- `g` means that we want to search the entire string for this pattern.
+- `i` means that we want to ignore the case (uppercase or lowercase) when searching for the pattern.
diff --git a/Waypoint-Size-your-Images.md b/Waypoint-Size-your-Images.md
index 6b28bf7..f7cf96b 100644
--- a/Waypoint-Size-your-Images.md
+++ b/Waypoint-Size-your-Images.md
@@ -1,3 +1,3 @@
-CSS has an attribute called `width` that controls an element's width. Just like with fonts, we'll use `px` (pixels) to specify the image's width.
-
+CSS has an attribute called `width` that controls an element's width. Just like with fonts, we'll use `px` (pixels) to specify the image's width.
+
 For example, if we wanted to create a CSS class called larger-image that gave HTML elements a width of 500 pixels, we'd use: `<style> .larger-image { width: 500px; } </style>`.
\ No newline at end of file
diff --git a/Waypoint-Sort-Arrays-with-sort.md b/Waypoint-Sort-Arrays-with-sort.md
index abacb6e..423ada2 100644
--- a/Waypoint-Sort-Arrays-with-sort.md
+++ b/Waypoint-Sort-Arrays-with-sort.md
@@ -1,8 +1,8 @@
-You can use the method sort to easily sort the values in the array alphabetically or numerically
-
-```
-var array = [1,3,2];
-
-array = array.sort();
-```
+You can use the method sort to easily sort the values in the array alphabetically or numerically
+
+```
+var array = [1,3,2];
+
+array = array.sort();
+```
 This will return `[1, 2, 3]`
\ No newline at end of file
diff --git a/Waypoint-Specify-How-Fonts-Should-Degrade.md b/Waypoint-Specify-How-Fonts-Should-Degrade.md
index 686a5c2..613c488 100644
--- a/Waypoint-Specify-How-Fonts-Should-Degrade.md
+++ b/Waypoint-Specify-How-Fonts-Should-Degrade.md
@@ -1,3 +1,3 @@
-There are several default fonts that are available in all browsers. These include `Monospace`, `Serif` and `Sans-Serif`.
-
+There are several default fonts that are available in all browsers. These include `Monospace`, `Serif` and `Sans-Serif`.
+
 For example, if you wanted an element to use the `Helvetica` font, but also degrade to the `Sans-Serif` font when `Helvetica` wasn't available, you could use this CSS style: `p { font-family: Helvetica, Sans-Serif; }`.
\ No newline at end of file
diff --git a/Waypoint-Split-Strings-with-split.md b/Waypoint-Split-Strings-with-split.md
index 6412626..f753180 100644
--- a/Waypoint-Split-Strings-with-split.md
+++ b/Waypoint-Split-Strings-with-split.md
@@ -1,5 +1,5 @@
-You can use the `.split()` method to split a string into an array.
-
-split uses the argument you give to to split the string.
-
+You can use the `.split()` method to split a string into an array.
+
+split uses the argument you give to to split the string.
+
 `array = string.split(' ');`
\ No newline at end of file
diff --git a/Waypoint-Split-your-Bootstrap-Row.md b/Waypoint-Split-your-Bootstrap-Row.md
index 14f92fd..64c4fde 100644
--- a/Waypoint-Split-your-Bootstrap-Row.md
+++ b/Waypoint-Split-your-Bootstrap-Row.md
@@ -1,12 +1,12 @@
-# Split your Bootstrap Row
-Create two `div` elements within your row, both with the class `col-xs-6`.
-
-```
-<div class="container-fluid">
-  <h3 class="text-primary text-center">jQuery Playground</h3>
-  <div class="row">
-    <div class="col-xs-6"> </div>
-    <div class="col-xs-6"></div>
-  </div>
-</div>
-```
+# Split your Bootstrap Row
+Create two `div` elements within your row, both with the class `col-xs-6`.
+
+```
+<div class="container-fluid">
+  <h3 class="text-primary text-center">jQuery Playground</h3>
+  <div class="row">
+    <div class="col-xs-6"> </div>
+    <div class="col-xs-6"></div>
+  </div>
+</div>
+```
diff --git a/Waypoint-Store-Multiple-Values-in-one-Variable-using-JavaScript-Arrays.md b/Waypoint-Store-Multiple-Values-in-one-Variable-using-JavaScript-Arrays.md
index cc593b3..5389e03 100644
--- a/Waypoint-Store-Multiple-Values-in-one-Variable-using-JavaScript-Arrays.md
+++ b/Waypoint-Store-Multiple-Values-in-one-Variable-using-JavaScript-Arrays.md
@@ -1,6 +1,6 @@
-# Store Multiple Values in one Variable using JavaScript Arrays
-With JavaScript array variables, we can store several pieces of data in one place.
-
-You start an array declaration with an opening bracket, end it with a closing bracket, and put a comma between each entry, like this: `var sandwich = ["peanut butter", "jelly", "bread"]`.
-
-`myArray = [2,'j'];`
+# Store Multiple Values in one Variable using JavaScript Arrays
+With JavaScript array variables, we can store several pieces of data in one place.
+
+You start an array declaration with an opening bracket, end it with a closing bracket, and put a comma between each entry, like this: `var sandwich = ["peanut butter", "jelly", "bread"]`.
+
+`myArray = [2,'j'];`
diff --git a/Waypoint-Style-Multiple-Elements-with-a-CSS-Class.md b/Waypoint-Style-Multiple-Elements-with-a-CSS-Class.md
index 8b010d2..eec7112 100644
--- a/Waypoint-Style-Multiple-Elements-with-a-CSS-Class.md
+++ b/Waypoint-Style-Multiple-Elements-with-a-CSS-Class.md
@@ -1,15 +1,15 @@
-You can attach classes to HTML elements by using `class="your-class-here"` within the relevant element's opening tag.
-
-CSS selectors require a period at the beginning like this: `.blue-text { color: blue; }`, but that class declarations don't use a period, like this: `<h2 class="blue-text">CatPhotoApp<h2>`.
-
-```html
-<style>
-  .red-text {
-    color: red;
-  }
-</style>
-
-<h2 class="red-text">CatPhotoApp</h2>
-
-<p class="red-text">Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>
+You can attach classes to HTML elements by using `class="your-class-here"` within the relevant element's opening tag.
+
+CSS selectors require a period at the beginning like this: `.blue-text { color: blue; }`, but that class declarations don't use a period, like this: `<h2 class="blue-text">CatPhotoApp<h2>`.
+
+```html
+<style>
+  .red-text {
+    color: red;
+  }
+</style>
+
+<h2 class="red-text">CatPhotoApp</h2>
+
+<p class="red-text">Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>
 ```
\ No newline at end of file
diff --git a/Waypoint-Style-Text-Inputs-as-Form-Controls.md b/Waypoint-Style-Text-Inputs-as-Form-Controls.md
index 39da6d3..682b330 100644
--- a/Waypoint-Style-Text-Inputs-as-Form-Controls.md
+++ b/Waypoint-Style-Text-Inputs-as-Form-Controls.md
@@ -1,4 +1,4 @@
-# Style Text Inputs as Form Controls
-You can add the `fa-paper-plane` Font Awesome icon by adding `<i class="fa fa-paper-plane"></i>` within your submit button element.
-
-`<button type="submit" class="btn btn-primary"><i class="fa fa-paper-plane">Submit</i>`
+# Style Text Inputs as Form Controls
+You can add the `fa-paper-plane` Font Awesome icon by adding `<i class="fa fa-paper-plane"></i>` within your submit button element.
+
+`<button type="submit" class="btn btn-primary"><i class="fa fa-paper-plane">Submit</i>`
diff --git a/Waypoint-Subtract-One-Number-from-Another-with-JavaScript.md b/Waypoint-Subtract-One-Number-from-Another-with-JavaScript.md
index dcea6d4..f2b3028 100644
--- a/Waypoint-Subtract-One-Number-from-Another-with-JavaScript.md
+++ b/Waypoint-Subtract-One-Number-from-Another-with-JavaScript.md
@@ -1,4 +1,4 @@
-# Subtract One Number from Another with JavaScript
-We can also subtract one number from another.
-
-JavaScript uses use the - symbol for subtraction. `var difference = 45 - 33;`
+# Subtract One Number from Another with JavaScript
+We can also subtract one number from another.
+
+JavaScript uses use the - symbol for subtraction. `var difference = 45 - 33;`
diff --git a/Waypoint-Target-Elements-by-Class-Using-jQuery.md b/Waypoint-Target-Elements-by-Class-Using-jQuery.md
index d240ae9..b39cdd1 100644
--- a/Waypoint-Target-Elements-by-Class-Using-jQuery.md
+++ b/Waypoint-Target-Elements-by-Class-Using-jQuery.md
@@ -1,4 +1,4 @@
-# Target Elements by Class Using jQuery
-Just as we did before, we can also target elements by classes.
-
-`$(".well").addClass("animated shake");`
+# Target Elements by Class Using jQuery
+Just as we did before, we can also target elements by classes.
+
+`$(".well").addClass("animated shake");`
diff --git a/Waypoint-Target-Elements-by-ID-Using-jQuery.md b/Waypoint-Target-Elements-by-ID-Using-jQuery.md
index 8e03a5d..f975d1c 100644
--- a/Waypoint-Target-Elements-by-ID-Using-jQuery.md
+++ b/Waypoint-Target-Elements-by-ID-Using-jQuery.md
@@ -1,4 +1,4 @@
-# Target Elements by ID Using jQuery
-You can also target elements by their id attributes. Note that, just like with CSS declarations, you type a # before the id's name.
-
-`$("#target3").addClass("animated fadeOut");`
+# Target Elements by ID Using jQuery
+You can also target elements by their id attributes. Note that, just like with CSS declarations, you type a # before the id's name.
+
+`$("#target3").addClass("animated fadeOut");`
diff --git a/Waypoint-Target-Even-Numbered-Elements-Using-jQuery.md b/Waypoint-Target-Even-Numbered-Elements-Using-jQuery.md
index 84c6fa1..4b1011b 100644
--- a/Waypoint-Target-Even-Numbered-Elements-Using-jQuery.md
+++ b/Waypoint-Target-Even-Numbered-Elements-Using-jQuery.md
@@ -1,6 +1,6 @@
-# Target Even Numbered Elements Using jQuery
-You can also target all the even-numbered elements.
-
-Here's how you would target all the `odd-numbered` elements with class target and give them classes: `$('.target:odd').addClass('animated shake');`
-
-This will shake all the even ones: `$('.target:even').addClass("shake");`
+# Target Even Numbered Elements Using jQuery
+You can also target all the even-numbered elements.
+
+Here's how you would target all the `odd-numbered` elements with class target and give them classes: `$('.target:odd').addClass('animated shake');`
+
+This will shake all the even ones: `$('.target:even').addClass("shake");`
diff --git a/Waypoint-Target-HTML-Elements-with-Selectors-Using-jQuery.md b/Waypoint-Target-HTML-Elements-with-Selectors-Using-jQuery.md
index 94c6e84..ed74c8f 100644
--- a/Waypoint-Target-HTML-Elements-with-Selectors-Using-jQuery.md
+++ b/Waypoint-Target-HTML-Elements-with-Selectors-Using-jQuery.md
@@ -1,14 +1,14 @@
-# Target HTML Elements with Selectors Using jQuery
-After we have created our `document ready function` we can now have code that will run after the page loads. This will assure that your code does not run before the HTML is rendered to avoid bugs.
-
-jQuery often selects an HTML element with a selector, then does something to that element.
-
-The following code will make the buttons have a bouncy animation on page load.
-
-```
-<script>
-  $(document).ready(function() {
-    $("button").addClass("animated bounce");
-  });
-</script>
-```
+# Target HTML Elements with Selectors Using jQuery
+After we have created our `document ready function` we can now have code that will run after the page loads. This will assure that your code does not run before the HTML is rendered to avoid bugs.
+
+jQuery often selects an HTML element with a selector, then does something to that element.
+
+The following code will make the buttons have a bouncy animation on page load.
+
+```
+<script>
+  $(document).ready(function() {
+    $("button").addClass("animated bounce");
+  });
+</script>
+```
diff --git a/Waypoint-Target-a-Specific-Child-of-an-Element-Using-jQuery.md b/Waypoint-Target-a-Specific-Child-of-an-Element-Using-jQuery.md
index c52ae8d..934979f 100644
--- a/Waypoint-Target-a-Specific-Child-of-an-Element-Using-jQuery.md
+++ b/Waypoint-Target-a-Specific-Child-of-an-Element-Using-jQuery.md
@@ -1,6 +1,6 @@
-# Target a Specific Child of an Element Using jQuery
-jQuery uses CSS Selectors to target elements. `target:nth-child(n)` css selector allows you to select all the nth element with the target class or element type.
-
-Here's how you would give the third element in each well bounce: `$(".target:nth-child(3)").addClass("animated bounce");`
-
-`$(".btn:nth-child(2)").addClass("animated bounce");`
+# Target a Specific Child of an Element Using jQuery
+jQuery uses CSS Selectors to target elements. `target:nth-child(n)` css selector allows you to select all the nth element with the target class or element type.
+
+Here's how you would give the third element in each well bounce: `$(".target:nth-child(3)").addClass("animated bounce");`
+
+`$(".btn:nth-child(2)").addClass("animated bounce");`
diff --git a/Waypoint-Target-the-Children-of-an-Element-Using-jQuery.md b/Waypoint-Target-the-Children-of-an-Element-Using-jQuery.md
index 42e7e23..c43059c 100644
--- a/Waypoint-Target-the-Children-of-an-Element-Using-jQuery.md
+++ b/Waypoint-Target-the-Children-of-an-Element-Using-jQuery.md
@@ -1,6 +1,6 @@
-# Target the Children of an Element Using jQuery
-Many HTML elements have children elements from which they inherit properties.
-
-jQuery has a function called `children()` that allows you to access the children of whichever element you've selected.
-
-Here's an example of how you would use the `children()` function: `$("#left-well").children().css("color", "blue");`
+# Target the Children of an Element Using jQuery
+Many HTML elements have children elements from which they inherit properties.
+
+jQuery has a function called `children()` that allows you to access the children of whichever element you've selected.
+
+Here's an example of how you would use the `children()` function: `$("#left-well").children().css("color", "blue");`
diff --git a/Waypoint-Target-the-Parent-of-an-Element-Using-jQuery.md b/Waypoint-Target-the-Parent-of-an-Element-Using-jQuery.md
index aa04a7b..69730e4 100644
--- a/Waypoint-Target-the-Parent-of-an-Element-Using-jQuery.md
+++ b/Waypoint-Target-the-Parent-of-an-Element-Using-jQuery.md
@@ -1,8 +1,8 @@
-# Target the Parent of an Element Using jQuery
-Every HTML elements has a parent element from which it inherits properties.
-
-For example, your jQuery Playground `h3` element has the parent element of`<div class="container-fluid">`, which itself has the parent body.
-
-jQuery has a function called `parent()` that allows you to access the parent of whichever element you've selected.
-
-Here's an example of how you would use the `parent()` function: `$("#left-well").parent().css("background-color", "blue")`
+# Target the Parent of an Element Using jQuery
+Every HTML elements has a parent element from which it inherits properties.
+
+For example, your jQuery Playground `h3` element has the parent element of`<div class="container-fluid">`, which itself has the parent body.
+
+jQuery has a function called `parent()` that allows you to access the parent of whichever element you've selected.
+
+Here's an example of how you would use the `parent()` function: `$("#left-well").parent().css("background-color", "blue")`
diff --git a/Waypoint-Target-the-same-element-with-multiple-jQuery-Selectors.md b/Waypoint-Target-the-same-element-with-multiple-jQuery-Selectors.md
index 731e4e0..ef710f2 100644
--- a/Waypoint-Target-the-same-element-with-multiple-jQuery-Selectors.md
+++ b/Waypoint-Target-the-same-element-with-multiple-jQuery-Selectors.md
@@ -1,15 +1,15 @@
-# Target the same element with multiple jQuery Selectors
-The multiple jQuery selectors are:
-1. By type: `$("button")`
-2. By class: `$(".btn")`
-3. By id: `$("#target1")`
-
-```
-<script>
-  $(document).ready(function() {
-    $("button").addClass("animated");
-    $(".btn").addClass("shake");
-    $("#target1").addClass("btn-primary");
-  });
-</script>
-```
+# Target the same element with multiple jQuery Selectors
+The multiple jQuery selectors are:
+1. By type: `$("button")`
+2. By class: `$(".btn")`
+3. By id: `$("#target1")`
+
+```
+<script>
+  $(document).ready(function() {
+    $("button").addClass("animated");
+    $(".btn").addClass("shake");
+    $("#target1").addClass("btn-primary");
+  });
+</script>
+```
diff --git a/Waypoint-Taste-the-Bootstrap-Button-Color-Rainbow.md b/Waypoint-Taste-the-Bootstrap-Button-Color-Rainbow.md
index 6d6d755..5da1e82 100644
--- a/Waypoint-Taste-the-Bootstrap-Button-Color-Rainbow.md
+++ b/Waypoint-Taste-the-Bootstrap-Button-Color-Rainbow.md
@@ -1,4 +1,4 @@
-# Taste the Bootstrap Button Color Rainbow
-The `btn-primary` class is the main color you'll use in your app. It is useful for highlighting actions you want your user to take. Note that this button will still need the `btn` and `btn-block` classes.
-
-`<button class="btn btn-block btn-primary">Like</button>`
+# Taste the Bootstrap Button Color Rainbow
+The `btn-primary` class is the main color you'll use in your app. It is useful for highlighting actions you want your user to take. Note that this button will still need the `btn` and `btn-block` classes.
+
+`<button class="btn btn-block btn-primary">Like</button>`
diff --git a/Waypoint-Uncomment-HTML.md b/Waypoint-Uncomment-HTML.md
index 7cbc2e3..d7619e6 100644
--- a/Waypoint-Uncomment-HTML.md
+++ b/Waypoint-Uncomment-HTML.md
@@ -1,5 +1,5 @@
-Given that there are two ways to write comments in JavaScript:
-1. Using `//`
-2. Using `<!-- text -->`
-
+Given that there are two ways to write comments in JavaScript:
+1. Using `//`
+2. Using `<!-- text -->`
+
 You can easily uncomment by just removing the comment elements.
\ No newline at end of file
diff --git a/Waypoint-Understand-Boolean-Values.md b/Waypoint-Understand-Boolean-Values.md
index e8ff55d..d0495dd 100644
--- a/Waypoint-Understand-Boolean-Values.md
+++ b/Waypoint-Understand-Boolean-Values.md
@@ -1,2 +1,2 @@
-# Understand Boolean Values
-Booleans can only hold the value of either true or false. They are basically little on-off switches.
+# Understand Boolean Values
+Booleans can only hold the value of either true or false. They are basically little on-off switches.
diff --git a/Waypoint-Use-Abbreviated-Hex-Code.md b/Waypoint-Use-Abbreviated-Hex-Code.md
index 9e14668..cf6d6f6 100644
--- a/Waypoint-Use-Abbreviated-Hex-Code.md
+++ b/Waypoint-Use-Abbreviated-Hex-Code.md
@@ -1,11 +1,11 @@
-red, which is `#FF0000` in hex code, can be shortened to `#F00`. That is, one digit for red, one digit for green, one digit for blue.
-
-This reduces the total number of possible colors to around 4,000. But browsers will interpret `#FF0000` and `#F00` as exactly the same color.
-
-```
-<style>
-  body {
-    background-color: #F00;
-  }
-</style>
+red, which is `#FF0000` in hex code, can be shortened to `#F00`. That is, one digit for red, one digit for green, one digit for blue.
+
+This reduces the total number of possible colors to around 4,000. But browsers will interpret `#FF0000` and `#F00` as exactly the same color.
+
+```
+<style>
+  body {
+    background-color: #F00;
+  }
+</style>
 ```
\ No newline at end of file
diff --git a/Waypoint-Use-Bracket-Notation-to-Find-the-First-Character-in-a-String.md b/Waypoint-Use-Bracket-Notation-to-Find-the-First-Character-in-a-String.md
index ec7bad4..8a36dc4 100644
--- a/Waypoint-Use-Bracket-Notation-to-Find-the-First-Character-in-a-String.md
+++ b/Waypoint-Use-Bracket-Notation-to-Find-the-First-Character-in-a-String.md
@@ -1,4 +1,4 @@
-# Use Bracket Notation to Find the First Character in a String
-Bracket notation is a way to get a character at a specific index within a string.
-
-Computers don't start counting at `1` like humans do. They start at `0`. `firstLetterOfLastName = lastName[0];`
+# Use Bracket Notation to Find the First Character in a String
+Bracket notation is a way to get a character at a specific index within a string.
+
+Computers don't start counting at `1` like humans do. They start at `0`. `firstLetterOfLastName = lastName[0];`
diff --git a/Waypoint-Use-Bracket-Notation-to-Find-the-Last-Character-in-a-String.md b/Waypoint-Use-Bracket-Notation-to-Find-the-Last-Character-in-a-String.md
index 7b1b315..ae73703 100644
--- a/Waypoint-Use-Bracket-Notation-to-Find-the-Last-Character-in-a-String.md
+++ b/Waypoint-Use-Bracket-Notation-to-Find-the-Last-Character-in-a-String.md
@@ -1,6 +1,6 @@
-# Use Bracket Notation to Find the Last Character in a String
-In order to get the last letter of a string, you can subtract one from the string's length.
-
-For example, if `var firstName = "Charles"`, you can get the value of the last letter of the string by using `firstName[firstName.length - 1]`.
-
-`var lastLetterOfLastName = lastName[lastName.length -1];`
+# Use Bracket Notation to Find the Last Character in a String
+In order to get the last letter of a string, you can subtract one from the string's length.
+
+For example, if `var firstName = "Charles"`, you can get the value of the last letter of the string by using `firstName[firstName.length - 1]`.
+
+`var lastLetterOfLastName = lastName[lastName.length -1];`
diff --git a/Waypoint-Use-Bracket-Notation-to-Find-the-Nth-Character-in-a-String.md b/Waypoint-Use-Bracket-Notation-to-Find-the-Nth-Character-in-a-String.md
index 2cc8f18..95fab20 100644
--- a/Waypoint-Use-Bracket-Notation-to-Find-the-Nth-Character-in-a-String.md
+++ b/Waypoint-Use-Bracket-Notation-to-Find-the-Nth-Character-in-a-String.md
@@ -1,6 +1,6 @@
-# Use Bracket Notation to Find the Nth Character in a String
-You can also use bracket notation to get the character at other positions within a string.
-
-Remember that computers start counting at `0`, so the first character is actually the zeroth character.
-
-`var thirdLetterOfLastName = lastName[2];`
+# Use Bracket Notation to Find the Nth Character in a String
+You can also use bracket notation to get the character at other positions within a string.
+
+Remember that computers start counting at `0`, so the first character is actually the zeroth character.
+
+`var thirdLetterOfLastName = lastName[2];`
diff --git a/Waypoint-Use-Bracket-Notation-to-Find-the-Nth-to-Last-Character-in-a-String.md b/Waypoint-Use-Bracket-Notation-to-Find-the-Nth-to-Last-Character-in-a-String.md
index af7705b..dab3730 100644
--- a/Waypoint-Use-Bracket-Notation-to-Find-the-Nth-to-Last-Character-in-a-String.md
+++ b/Waypoint-Use-Bracket-Notation-to-Find-the-Nth-to-Last-Character-in-a-String.md
@@ -1,2 +1,2 @@
-# Use Bracket Notation to Find the Nth-to-Last Character in a String
-You can get the value of the third-to-last letter of the `var firstName = "Charles"` string by using `firstName[firstName.length - 3]`.
+# Use Bracket Notation to Find the Nth-to-Last Character in a String
+You can get the value of the third-to-last letter of the `var firstName = "Charles"` string by using `firstName[firstName.length - 3]`.
diff --git a/Waypoint-Use-CSS-Selectors-to-Style-Elements.md b/Waypoint-Use-CSS-Selectors-to-Style-Elements.md
index b39c4d0..c017d50 100644
--- a/Waypoint-Use-CSS-Selectors-to-Style-Elements.md
+++ b/Waypoint-Use-CSS-Selectors-to-Style-Elements.md
@@ -1,7 +1,7 @@
-Instead of giving style attributes one by one, we can do this to multiple elements at the same time.
-
-You can create a style element like this: `<style></style>`.
-
-Inside that style element, you can create a CSS selector for any HTML Elements. For example, if you wanted all h2 elements to be red, your style element would look like this: `<style>h2 {color: red;}</style>`.
-
+Instead of giving style attributes one by one, we can do this to multiple elements at the same time.
+
+You can create a style element like this: `<style></style>`.
+
+Inside that style element, you can create a CSS selector for any HTML Elements. For example, if you wanted all h2 elements to be red, your style element would look like this: `<style>h2 {color: red;}</style>`.
+
 Note that it's important to have both opening and closing curly braces `({` and `})` around each element's style. You also need to make sure your element's style is between the opening and closing style tags. Finally, be sure to add the semicolon to the end of each of your element's styles.
\ No newline at end of file
diff --git a/Waypoint-Use-Clockwise-Notation-to-Specify-the-Margin-of-an-Element.md b/Waypoint-Use-Clockwise-Notation-to-Specify-the-Margin-of-an-Element.md
index 7db9504..3d0fbb9 100644
--- a/Waypoint-Use-Clockwise-Notation-to-Specify-the-Margin-of-an-Element.md
+++ b/Waypoint-Use-Clockwise-Notation-to-Specify-the-Margin-of-an-Element.md
@@ -1,10 +1,10 @@
-Instead of specifying an element's`margin-top`, `margin-right`, `margin-bottom`, and `margin-left` attributes, you can specify them all in one line, like this: `margin: 10px 20px 10px 20px;`.
-
-These four values work like a clock: top, right, bottom, left, and will produce the exact same result as using the side-specific margin instructions.
-
-```
-.green-box {
-  background-color: green;
-  margin: 40px 20px 20px 40px;
-}
+Instead of specifying an element's`margin-top`, `margin-right`, `margin-bottom`, and `margin-left` attributes, you can specify them all in one line, like this: `margin: 10px 20px 10px 20px;`.
+
+These four values work like a clock: top, right, bottom, left, and will produce the exact same result as using the side-specific margin instructions.
+
+```
+.green-box {
+  background-color: green;
+  margin: 40px 20px 20px 40px;
+}
 ```
\ No newline at end of file
diff --git a/Waypoint-Use-Clockwise-Notation-to-Specify-the-Padding-of-an-Element.md b/Waypoint-Use-Clockwise-Notation-to-Specify-the-Padding-of-an-Element.md
index 3419028..4f2be59 100644
--- a/Waypoint-Use-Clockwise-Notation-to-Specify-the-Padding-of-an-Element.md
+++ b/Waypoint-Use-Clockwise-Notation-to-Specify-the-Padding-of-an-Element.md
@@ -1,10 +1,10 @@
-Instead of specifying an element's `padding-top`, `padding-right`, `padding-bottom`, and `padding-lef`t attributes, you can specify them all in one line, like this: `padding: 10px 20px 10px 20px;`.
-
-These four values work like a clock: top, right, bottom, left, and will produce the exact same result as using the side-specific padding instructions.
-
-```
-.green-box {
-  background-color: green;
-  padding: 40px 20px 20px 40px
-}
+Instead of specifying an element's `padding-top`, `padding-right`, `padding-bottom`, and `padding-lef`t attributes, you can specify them all in one line, like this: `padding: 10px 20px 10px 20px;`.
+
+These four values work like a clock: top, right, bottom, left, and will produce the exact same result as using the side-specific padding instructions.
+
+```
+.green-box {
+  background-color: green;
+  padding: 40px 20px 20px 40px
+}
 ```
\ No newline at end of file
diff --git a/Waypoint-Use-Comments-to-Clarify-Code.md b/Waypoint-Use-Comments-to-Clarify-Code.md
index 9faa071..5d088f5 100644
--- a/Waypoint-Use-Comments-to-Clarify-Code.md
+++ b/Waypoint-Use-Comments-to-Clarify-Code.md
@@ -1,29 +1,29 @@
-# Use Comments to Clarify Code
-When we start using jQuery, we will modify HTML elements without needing to actually change them in HTML.
-
-This is a great way to make websites with a particular structure. Remember that you can start a comment with `<!-- and end a comment with -->`
-
-```
-<!--You shouldn't need to modify code below this line -->
-<div class="container-fluid">
- <h3 class="text-primary text-center">jQuery Playground</h3>
- <div class="row">
-   <div class="col-xs-6">
-     <h4>#left-well</h4>
-     <div class="well" id="left-well">
-       <button class="btn btn-default target" id="target1">#target1</button>
-       <button class="btn btn-default target" id="target2">#target2</button>
-       <button class="btn btn-default target" id="target3">#target3</button>
-     </div>
-   </div>
-   <div class="col-xs-6">
-     <h4>#right-well</h4>
-     <div class="well" id="right-well">
-       <button class="btn btn-default target" id="target4">#target4</button>
-       <button class="btn btn-default target" id="target5">#target5</button>
-       <button class="btn btn-default target" id="target6">#target6</button>
-     </div>
-   </div>
- </div>
-</div>
-```
+# Use Comments to Clarify Code
+When we start using jQuery, we will modify HTML elements without needing to actually change them in HTML.
+
+This is a great way to make websites with a particular structure. Remember that you can start a comment with `<!-- and end a comment with -->`
+
+```
+<!--You shouldn't need to modify code below this line -->
+<div class="container-fluid">
+ <h3 class="text-primary text-center">jQuery Playground</h3>
+ <div class="row">
+   <div class="col-xs-6">
+     <h4>#left-well</h4>
+     <div class="well" id="left-well">
+       <button class="btn btn-default target" id="target1">#target1</button>
+       <button class="btn btn-default target" id="target2">#target2</button>
+       <button class="btn btn-default target" id="target3">#target3</button>
+     </div>
+   </div>
+   <div class="col-xs-6">
+     <h4>#right-well</h4>
+     <div class="well" id="right-well">
+       <button class="btn btn-default target" id="target4">#target4</button>
+       <button class="btn btn-default target" id="target5">#target5</button>
+       <button class="btn btn-default target" id="target6">#target6</button>
+     </div>
+   </div>
+ </div>
+</div>
+```
diff --git a/Waypoint-Use-Conditional-Logic-with-If-Else-Statements.md b/Waypoint-Use-Conditional-Logic-with-If-Else-Statements.md
index 452378c..5b084ca 100644
--- a/Waypoint-Use-Conditional-Logic-with-If-Else-Statements.md
+++ b/Waypoint-Use-Conditional-Logic-with-If-Else-Statements.md
@@ -1,15 +1,15 @@
-# Use Conditional Logic with If-Else Statements
-We can use if statements in JavaScript to only execute code if a certain condition is met.
-
-if statements require some sort of `boolean` condition evaluate.
-
-```
-Example:
-
- if (1 == 2) {
-  return(true);
-}
-else {
-  return(false);
-}
-```
+# Use Conditional Logic with If-Else Statements
+We can use if statements in JavaScript to only execute code if a certain condition is met.
+
+if statements require some sort of `boolean` condition evaluate.
+
+```
+Example:
+
+ if (1 == 2) {
+  return(true);
+}
+else {
+  return(false);
+}
+```
diff --git a/Waypoint-Use-HTML5-to-Require-a-Field.md b/Waypoint-Use-HTML5-to-Require-a-Field.md
index c351dfa..718c10a 100644
--- a/Waypoint-Use-HTML5-to-Require-a-Field.md
+++ b/Waypoint-Use-HTML5-to-Require-a-Field.md
@@ -1,10 +1,10 @@
-You can require specific form fields so that your user will not be able to submit your form until he or she has filled them out.
-
-For example, if you wanted to make a text input field required, you can just add the word required within your input element, you would use: `<input type="text" required>`.
-
-```
-<form action="/submit-cat-photo">
-  <input type="text" placeholder="cat photo URL" required>
-  <button type="submit">Submit</button>
-</form>
+You can require specific form fields so that your user will not be able to submit your form until he or she has filled them out.
+
+For example, if you wanted to make a text input field required, you can just add the word required within your input element, you would use: `<input type="text" required>`.
+
+```
+<form action="/submit-cat-photo">
+  <input type="text" placeholder="cat photo URL" required>
+  <button type="submit">Submit</button>
+</form>
 ```
\ No newline at end of file
diff --git a/Waypoint-Use-Hex-Code-for-Specific-Colors.md b/Waypoint-Use-Hex-Code-for-Specific-Colors.md
index fc7398e..0fe85a2 100644
--- a/Waypoint-Use-Hex-Code-for-Specific-Colors.md
+++ b/Waypoint-Use-Hex-Code-for-Specific-Colors.md
@@ -1,3 +1,3 @@
-With CSS, we use 6 hexadecimal number to represent colors. For example, `#000000` is the lowest possible value, and it represents the color black.
-
+With CSS, we use 6 hexadecimal number to represent colors. For example, `#000000` is the lowest possible value, and it represents the color black.
+
 This is the same as `#RRGGBB` which can also be simplified to `#RGB`.
\ No newline at end of file
diff --git a/Waypoint-Use-Hex-Code-to-Color-Elements-Blue.md b/Waypoint-Use-Hex-Code-to-Color-Elements-Blue.md
index 428af23..98b2eb6 100644
--- a/Waypoint-Use-Hex-Code-to-Color-Elements-Blue.md
+++ b/Waypoint-Use-Hex-Code-to-Color-Elements-Blue.md
@@ -1,9 +1,9 @@
-Just as with [red](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-to-Color-Elements-Red) and the others.
-
-```
-<style>
-  body {
-    background-color: #0000FF;
-  }
-</style>
+Just as with [red](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-to-Color-Elements-Red) and the others.
+
+```
+<style>
+  body {
+    background-color: #0000FF;
+  }
+</style>
 ```
\ No newline at end of file
diff --git a/Waypoint-Use-Hex-Code-to-Color-Elements-Green.md b/Waypoint-Use-Hex-Code-to-Color-Elements-Green.md
index afc5e58..b11e4e3 100644
--- a/Waypoint-Use-Hex-Code-to-Color-Elements-Green.md
+++ b/Waypoint-Use-Hex-Code-to-Color-Elements-Green.md
@@ -1,9 +1,9 @@
-Just as with [red](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-to-Color-Elements-Red) and the others.
-
-```
-<style>
-  body {
-    background-color: #00FF00;
-  }
-</style>
+Just as with [red](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Waypoint-Use-Hex-Code-to-Color-Elements-Red) and the others.
+
+```
+<style>
+  body {
+    background-color: #00FF00;
+  }
+</style>
 ```
\ No newline at end of file
diff --git a/Waypoint-Use-Hex-Code-to-Color-Elements-Red.md b/Waypoint-Use-Hex-Code-to-Color-Elements-Red.md
index d114b7b..4670af3 100644
--- a/Waypoint-Use-Hex-Code-to-Color-Elements-Red.md
+++ b/Waypoint-Use-Hex-Code-to-Color-Elements-Red.md
@@ -1,3 +1,3 @@
-Hex code follows the red-green-blue, or rgb format. The first two digits of hex code represent the amount of red in the color. The third and fourth digit represent the amount of green. The fifth and sixth represent the amount of blue.
-
+Hex code follows the red-green-blue, or rgb format. The first two digits of hex code represent the amount of red in the color. The third and fourth digit represent the amount of green. The fifth and sixth represent the amount of blue.
+
 So to get the absolute brightest red, you would just use `F` for the first and second digits (the highest possible value) and `0` for the third, fourth, fifth and sixth digits (the lowest possible value).
\ No newline at end of file
diff --git a/Waypoint-Use-Hex-Code-to-Mix-Colors.md b/Waypoint-Use-Hex-Code-to-Mix-Colors.md
index 9eb089d..4e3b298 100644
--- a/Waypoint-Use-Hex-Code-to-Mix-Colors.md
+++ b/Waypoint-Use-Hex-Code-to-Mix-Colors.md
@@ -1,9 +1,9 @@
-Orange is pure red, mixed with some green, and no blue.
-
-```
-<style>
-  body {
-    background-color: #FFA500;
-  }
-</style>
+Orange is pure red, mixed with some green, and no blue.
+
+```
+<style>
+  body {
+    background-color: #FFA500;
+  }
+</style>
 ```
\ No newline at end of file
diff --git a/Waypoint-Use-RGB-values-to-Color-Elements.md b/Waypoint-Use-RGB-values-to-Color-Elements.md
index 65cd00d..979b364 100644
--- a/Waypoint-Use-RGB-values-to-Color-Elements.md
+++ b/Waypoint-Use-RGB-values-to-Color-Elements.md
@@ -1,5 +1,5 @@
-Another way you can represent colors in CSS is by using `rgb` values.
-
-RGB values look like this: `rgb(0, 0, 0)` for black and `rgb(255, 255, 255)` for white.
-
+Another way you can represent colors in CSS is by using `rgb` values.
+
+RGB values look like this: `rgb(0, 0, 0)` for black and `rgb(255, 255, 255)` for white.
+
 Instead of using six hexadecimal digits like you do with hex code, with rbg you specify the brightness of each color with a number between 0 and 255. `background-color: rgb(0,0,0);`
\ No newline at end of file
diff --git a/Waypoint-Use-Responsive-Design-with-Bootstrap-Fluid-Containers.md b/Waypoint-Use-Responsive-Design-with-Bootstrap-Fluid-Containers.md
index 71c4fdb..e82ab8b 100644
--- a/Waypoint-Use-Responsive-Design-with-Bootstrap-Fluid-Containers.md
+++ b/Waypoint-Use-Responsive-Design-with-Bootstrap-Fluid-Containers.md
@@ -1,6 +1,6 @@
-# Use Responsive Design with Bootstrap Fluid Containers
-Bootstrap will figure out how wide your screen is and respond by resizing your HTML elements - hence the name Responsive Design.
-
-With responsive design, there is no need to design a mobile version of your website. It will look good on devices with screens of any width.
-
-You can add Bootstrap to any app just by including it with `<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css"/>` at the top of your HTML.
+# Use Responsive Design with Bootstrap Fluid Containers
+Bootstrap will figure out how wide your screen is and respond by resizing your HTML elements - hence the name Responsive Design.
+
+With responsive design, there is no need to design a mobile version of your website. It will look good on devices with screens of any width.
+
+You can add Bootstrap to any app just by including it with `<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css"/>` at the top of your HTML.
diff --git a/Waypoint-Use-Spans-for-Inline-Elements.md b/Waypoint-Use-Spans-for-Inline-Elements.md
index 8933a2c..ce52c34 100644
--- a/Waypoint-Use-Spans-for-Inline-Elements.md
+++ b/Waypoint-Use-Spans-for-Inline-Elements.md
@@ -1,4 +1,4 @@
-# Use Spans for Inline Elements
-You can use use spans to create inline elements. By using the span element, you can put several elements together, and even style different parts of the same element differently.
-
-`<p><span class = "text-danger">Things cats love:</span></p>`
+# Use Spans for Inline Elements
+You can use use spans to create inline elements. By using the span element, you can put several elements together, and even style different parts of the same element differently.
+
+`<p><span class = "text-danger">Things cats love:</span></p>`
diff --git a/Waypoint-Use-a-CSS-Class-to-Style-an-Element.md b/Waypoint-Use-a-CSS-Class-to-Style-an-Element.md
index be2b659..12f3d90 100644
--- a/Waypoint-Use-a-CSS-Class-to-Style-an-Element.md
+++ b/Waypoint-Use-a-CSS-Class-to-Style-an-Element.md
@@ -1,3 +1,3 @@
-Classes are reusable styles that can be added to HTML elements. You can apply a class to an HTML element like this: `<h2 class="blue-text">CatPhotoApp</h2>`.
-
+Classes are reusable styles that can be added to HTML elements. You can apply a class to an HTML element like this: `<h2 class="blue-text">CatPhotoApp</h2>`.
+
 Note that in your CSS style element, classes should start with a period. In your HTML elements' class declarations, classes shouldn't start with a period.
\ No newline at end of file
diff --git a/Waypoint-Use-an-ID-Attribute-to-Style-an-Element.md b/Waypoint-Use-an-ID-Attribute-to-Style-an-Element.md
index 250f01f..56e33d2 100644
--- a/Waypoint-Use-an-ID-Attribute-to-Style-an-Element.md
+++ b/Waypoint-Use-an-ID-Attribute-to-Style-an-Element.md
@@ -1,7 +1,7 @@
-One cool thing about `id` attributes is that, like classes, you can style them using CSS.
-
-Here's an example of how you can take your element with the `id` attribute of cat-photo-element and give it the background color of green.
-
-In your style element: `#cat-photo-element { background-color: green; }`
-
+One cool thing about `id` attributes is that, like classes, you can style them using CSS.
+
+Here's an example of how you can take your element with the `id` attribute of cat-photo-element and give it the background color of green.
+
+In your style element: `#cat-photo-element { background-color: green; }`
+
 Note that inside your style element, you always reference classes by putting a `.` in front of their names. You always reference ids by putting a `#` in front of their names.
\ No newline at end of file
diff --git a/Waypoint-Use-appendTo-to-Move-Elements-with-jQuery.md b/Waypoint-Use-appendTo-to-Move-Elements-with-jQuery.md
index 8a29e35..bcf0317 100644
--- a/Waypoint-Use-appendTo-to-Move-Elements-with-jQuery.md
+++ b/Waypoint-Use-appendTo-to-Move-Elements-with-jQuery.md
@@ -1,4 +1,4 @@
-# Use appendTo to Move Elements with jQuery
-jQuery has a function called `appendTo()` that allows you to select HTML elements and append them to another element.
-
-For example, if we wanted to move target4 from our right well to our left well, we would use `$("#target4").appendTo("#left-well");`
+# Use appendTo to Move Elements with jQuery
+jQuery has a function called `appendTo()` that allows you to select HTML elements and append them to another element.
+
+For example, if we wanted to move target4 from our right well to our left well, we would use `$("#target4").appendTo("#left-well");`
diff --git a/Waypoint-Use-jQuery-to-Modify-the-Entire-Page.md b/Waypoint-Use-jQuery-to-Modify-the-Entire-Page.md
index 875bd0b..da2ee55 100644
--- a/Waypoint-Use-jQuery-to-Modify-the-Entire-Page.md
+++ b/Waypoint-Use-jQuery-to-Modify-the-Entire-Page.md
@@ -1,4 +1,4 @@
-# Use jQuery to Modify the Entire Page
-jQuery can target the body element as well.
-
-Here's how we would make the entire body fade out: `$('body').addClass('animated fadeOut');`
+# Use jQuery to Modify the Entire Page
+jQuery can target the body element as well.
+
+Here's how we would make the entire body fade out: `$('body').addClass('animated fadeOut');`
diff --git a/Waypoint-Use-the-Bootstrap-Grid-to-Put-Elements-Side-By-Side.md b/Waypoint-Use-the-Bootstrap-Grid-to-Put-Elements-Side-By-Side.md
index c13f469..37d3a99 100644
--- a/Waypoint-Use-the-Bootstrap-Grid-to-Put-Elements-Side-By-Side.md
+++ b/Waypoint-Use-the-Bootstrap-Grid-to-Put-Elements-Side-By-Side.md
@@ -1,16 +1,16 @@
-# Use the Bootstrap Grid to Put Elements Side By Side
-Bootstrap uses a responsive grid system that makes it easier to put elements into rows and tell each element's relative width.
-
-![Bootstrap 12 column grid layout](https://www.evernote.com/shard/s116/sh/f0944d97-08b8-4615-8273-a327bf41fb05/de1a3acbceef89ae/deep/0/)
-
-Note that in this illustration, the `col-md-_` class is being used. Here, md means medium, and _ is a number specifying how many columns wide the element should be. In this case, the column width of an element on a medium-sized screen, such as a laptop, is being specified.
-
-```
-<div class="row">
-
-  <div class="col-xs-4"><button class="btn btn-block btn-primary">Like</button></div>
-  <div class="col-xs-4"><button class="btn btn-block btn-info">Info</button></div>
-  <div class="col-xs-4"><button class="btn btn-block btn-danger">Delete</button></div>
-
-</div>
-```
+# Use the Bootstrap Grid to Put Elements Side By Side
+Bootstrap uses a responsive grid system that makes it easier to put elements into rows and tell each element's relative width.
+
+![Bootstrap 12 column grid layout](https://www.evernote.com/shard/s116/sh/f0944d97-08b8-4615-8273-a327bf41fb05/de1a3acbceef89ae/deep/0/)
+
+Note that in this illustration, the `col-md-_` class is being used. Here, md means medium, and _ is a number specifying how many columns wide the element should be. In this case, the column width of an element on a medium-sized screen, such as a laptop, is being specified.
+
+```
+<div class="row">
+
+  <div class="col-xs-4"><button class="btn btn-block btn-primary">Like</button></div>
+  <div class="col-xs-4"><button class="btn btn-block btn-info">Info</button></div>
+  <div class="col-xs-4"><button class="btn btn-block btn-danger">Delete</button></div>
+
+</div>
+```
diff --git a/Waypoint-Use-the-Javascript-Console.md b/Waypoint-Use-the-Javascript-Console.md
index caae655..68fc262 100644
--- a/Waypoint-Use-the-Javascript-Console.md
+++ b/Waypoint-Use-the-Javascript-Console.md
@@ -1,7 +1,7 @@
-Both Chrome and Firefox have excellent JavaScript consoles, also known as DevTools, for debugging your JavaScript.
-
-You can find Developer tools in your Chrome's menu or Web Console in FireFox's menu. If you're using a different browser, or a mobile phone, we strongly recommend switching to desktop Firefox or Chrome.
-
-You can also use [https://repl.it/](https://repl.it/) to run code online.
-
+Both Chrome and Firefox have excellent JavaScript consoles, also known as DevTools, for debugging your JavaScript.
+
+You can find Developer tools in your Chrome's menu or Web Console in FireFox's menu. If you're using a different browser, or a mobile phone, we strongly recommend switching to desktop Firefox or Chrome.
+
+You can also use [https://repl.it/](https://repl.it/) to run code online.
+
 This is how you print to the console: `console.log('Hello world!')`
\ No newline at end of file
diff --git a/Waypoint-Using-typeof.md b/Waypoint-Using-typeof.md
index f2804f1..ffa5664 100644
--- a/Waypoint-Using-typeof.md
+++ b/Waypoint-Using-typeof.md
@@ -1,13 +1,13 @@
-You can use `typeof` to check the `data structure`, or type, of a variable.
-
-Note that in JavaScript, arrays are technically a type of object.
-
-```js
-console.log(typeof(""));
-
-console.log(typeof(0));
-
-console.log(typeof([]));
-
-console.log(typeof({}));
+You can use `typeof` to check the `data structure`, or type, of a variable.
+
+Note that in JavaScript, arrays are technically a type of object.
+
+```js
+console.log(typeof(""));
+
+console.log(typeof(0));
+
+console.log(typeof([]));
+
+console.log(typeof({}));
 ```
\ No newline at end of file
diff --git a/Waypoint-Warn-your-Users-of-a-Dangerous-Action.md b/Waypoint-Warn-your-Users-of-a-Dangerous-Action.md
index 982068e..8fe9795 100644
--- a/Waypoint-Warn-your-Users-of-a-Dangerous-Action.md
+++ b/Waypoint-Warn-your-Users-of-a-Dangerous-Action.md
@@ -1,4 +1,4 @@
-# Warn your Users of a Dangerous Action
-The `btn-danger` class is the button color you'll use to notify users that the button performs a destructive action, such as deleting a cat photo. Note that these buttons still need the `btn` and `btn-block` classes.
-
-`<button class="btn btn-block btn-danger">Delete</button>`
+# Warn your Users of a Dangerous Action
+The `btn-danger` class is the button color you'll use to notify users that the button performs a destructive action, such as deleting a cat photo. Note that these buttons still need the `btn` and `btn-block` classes.
+
+`<button class="btn btn-block btn-danger">Delete</button>`
diff --git a/Waypoint-Write-Reusable-JavaScript-with-Functions.md b/Waypoint-Write-Reusable-JavaScript-with-Functions.md
index 5944d7f..c0b5cd1 100644
--- a/Waypoint-Write-Reusable-JavaScript-with-Functions.md
+++ b/Waypoint-Write-Reusable-JavaScript-with-Functions.md
@@ -1,12 +1,12 @@
-# Write Reusable JavaScript with Functions
-In JavaScript, we can divide up our code into reusable parts called functions.
-
-Here's an example of a function:
-
-```
-function functionName (a, b) {
-  return(a + b);
-}
-```
-
-We can "call" our function like this: `functionName();`, and it will run and return it's return value to us.
+# Write Reusable JavaScript with Functions
+In JavaScript, we can divide up our code into reusable parts called functions.
+
+Here's an example of a function:
+
+```
+function functionName (a, b) {
+  return(a + b);
+}
+```
+
+We can "call" our function like this: `functionName();`, and it will run and return it's return value to us.
diff --git a/Web-Resources.md b/Web-Resources.md
index 47b496c..679ef44 100644
--- a/Web-Resources.md
+++ b/Web-Resources.md
@@ -1,11 +1,11 @@
-# Links
-- [Web Field Manual](http://webfieldmanual.com)
-
-# Debugging
-- [node-inspector](https://www.npmjs.com/package/node-inspector)
-- [Brackets Live Preview](http://brackets.io)
-- [browser-sync](http://www.browsersync.io)
-
-## Tools and Resources
-- [Color Contrast Analyser](http://wave.webaim.org/report#/google.com)
-- [Color Patterns](http://colorlovers.com)
+# Links
+- [Web Field Manual](http://webfieldmanual.com)
+
+# Debugging
+- [node-inspector](https://www.npmjs.com/package/node-inspector)
+- [Brackets Live Preview](http://brackets.io)
+- [browser-sync](http://www.browsersync.io)
+
+## Tools and Resources
+- [Color Contrast Analyser](http://wave.webaim.org/report#/google.com)
+- [Color Patterns](http://colorlovers.com)
diff --git a/What-exactly-Free-Code-Camp-does.md b/What-exactly-Free-Code-Camp-does.md
index 59a5e9f..a513f46 100644
--- a/What-exactly-Free-Code-Camp-does.md
+++ b/What-exactly-Free-Code-Camp-does.md
@@ -1,4 +1,4 @@
-We help our campers (students):
-- Learn full stack JavaScript
-- Build a portfolio of real apps that real people are using
+We help our campers (students):
+- Learn full stack JavaScript
+- Build a portfolio of real apps that real people are using
 - Get a coding job
\ No newline at end of file
diff --git a/What-pair-programming-is-and-why-it-is-special.md b/What-pair-programming-is-and-why-it-is-special.md
index 79699cb..cae4f03 100644
--- a/What-pair-programming-is-and-why-it-is-special.md
+++ b/What-pair-programming-is-and-why-it-is-special.md
@@ -1,11 +1,11 @@
-Pair programming is where two people code together on one computer.
-
-![](http://cs10.org/sp15/resources/images/pairprogramming.jpg)
-
-Pair programming encourages you to discuss different approaches to solving problems, and to keep one another other motivated. The result is better code than either of you could have written by yourselves. 
-
-Because of its benefits, many engineers pair program full time. And it's the best way to learn coding. Thanks to tools that allow two people to share mouse and keyboard inputs, you can pair program with a friend without needing to be in the same room.
-
-You can experience these benefits by pair programming with other Free Code Camp students on our coding challenges. Eventually, you'll work with people at nonprofits to build real-life software solutions.
-
-Here's [why you should try pair programming](https://github.com/FreeCodeCamp/freecodecamp/wiki/Why-You-Should-Try-Pair-Programming) and here are some tips on [how to be a good pair programmer](https://github.com/FreeCodeCamp/freecodecamp/wiki/Tips-on-How-To-Become-A-Good-Pair-Programmer).
+Pair programming is where two people code together on one computer.
+
+![](http://cs10.org/sp15/resources/images/pairprogramming.jpg)
+
+Pair programming encourages you to discuss different approaches to solving problems, and to keep one another other motivated. The result is better code than either of you could have written by yourselves. 
+
+Because of its benefits, many engineers pair program full time. And it's the best way to learn coding. Thanks to tools that allow two people to share mouse and keyboard inputs, you can pair program with a friend without needing to be in the same room.
+
+You can experience these benefits by pair programming with other Free Code Camp students on our coding challenges. Eventually, you'll work with people at nonprofits to build real-life software solutions.
+
+Here's [why you should try pair programming](https://github.com/FreeCodeCamp/freecodecamp/wiki/Why-You-Should-Try-Pair-Programming) and here are some tips on [how to be a good pair programmer](https://github.com/FreeCodeCamp/freecodecamp/wiki/Tips-on-How-To-Become-A-Good-Pair-Programmer).
diff --git a/What-the-main-advantages-of-Free-Code-Camp-are.md b/What-the-main-advantages-of-Free-Code-Camp-are.md
index e0dcb3b..63f36ab 100644
--- a/What-the-main-advantages-of-Free-Code-Camp-are.md
+++ b/What-the-main-advantages-of-Free-Code-Camp-are.md
@@ -1,10 +1,10 @@
-Free Code Camp's main advantages are that we're accessible to busy adults who want to change careers.
-
-Specifically, we're:
-
-* Free
-* Self-paced
-* Browser-based
-
-One of the most noticeable differences in this curriculum than other Code-Camp/School environments is the level of support: Using the chat-rooms for help, guidance, and assisting fellow coders gives you a better understanding of the code, easier access to explanations, and it's in real-time so you can question the confusion.
-
+Free Code Camp's main advantages are that we're accessible to busy adults who want to change careers.
+
+Specifically, we're:
+
+* Free
+* Self-paced
+* Browser-based
+
+One of the most noticeable differences in this curriculum than other Code-Camp/School environments is the level of support: Using the chat-rooms for help, guidance, and assisting fellow coders gives you a better understanding of the code, easier access to explanations, and it's in real-time so you can question the confusion.
+
diff --git a/What-the-style-guide-for-Bonfires-is.md b/What-the-style-guide-for-Bonfires-is.md
index 405e0c7..6a75953 100644
--- a/What-the-style-guide-for-Bonfires-is.md
+++ b/What-the-style-guide-for-Bonfires-is.md
@@ -1,15 +1,15 @@
-Writing Bonfire challenges is a great way to exercise your own problem solving and testing abilities. Follow this process closely to maximize the chances of us accepting your bonfire.
-
-- Fork the Free Code Camp repository and open `seed_data/bonfires.json` to become familiar with the format of our bonfires.
-- Regardless of your bonfire's difficulty, put it as the last bonfire in the JSON file. Change one of the numbers in the ID to ensure that your bonfire has a unique ID.
-- In the terminal, run `node seed_data/seed.js`. Run `gulp`. You should be able to navigate to your new bonfire in the challenge map. Whenever you make a change to bonfire.json, you'll need to reseed in order to see these changes in the browser.
-- Solve your own Bonfire. Confirm that your tests work as expected and that your instructions are sufficiently clear.
-- Submit a pull request to Free Code Camp's Staging branch and in the pull request body, link to a gist that has your algorithmic solution.
-
-Here is a description of each of the Bonfires' fields.
-- Name - The name of your challenge. It's OK for this to be humorous but it must be brief and relevant to the task.
-- Difficulty - Attempt to rate difficulty compared against existing bonfire challenges. A good proxy for the difficulty of a bonfire is how long it takes you to solve it. For every 15 minutes it takes, increase the difficulty. For example, a one-hour bonfire should probably be a 4.
-- Description- Separate paragraphs with a line break. Only the first paragraph is visible prior to a user before they click the the 'More information' button. All necessary information must be included in the first paragraph. Write this first paragraph as succinctly as possible. Subsequent paragraphs should offer hints or details if needed. If your subject matter warrants deeper understanding, you may link to Wikipedia.
-- Challenge Seed - This is where you set up what will be in the editor when the camper starts the bonfire.
-- Tests - These tests are what bring your challenge to life. Without them, we cannot confirm the accuracy of a user's submitted answer. Choose your tests wisely. Bonfire tests are written using the Chai.js assertion library. Please use the should and expect syntax for end user readability. As an example of what not do to, many of the original Bonfire challenges are written with assert syntax and many of the test cases are difficult to read. If your bonfire question has a lot of edge cases, you will need to write many tests for full coverage. If you find yourself writing more tests than you desire, you may consider simplifying the requirements of your bonfire challenge. For difficulty level 1 through 3, you will generally only need 2 to 4 tests.
+Writing Bonfire challenges is a great way to exercise your own problem solving and testing abilities. Follow this process closely to maximize the chances of us accepting your bonfire.
+
+- Fork the Free Code Camp repository and open `seed_data/bonfires.json` to become familiar with the format of our bonfires.
+- Regardless of your bonfire's difficulty, put it as the last bonfire in the JSON file. Change one of the numbers in the ID to ensure that your bonfire has a unique ID.
+- In the terminal, run `node seed_data/seed.js`. Run `gulp`. You should be able to navigate to your new bonfire in the challenge map. Whenever you make a change to bonfire.json, you'll need to reseed in order to see these changes in the browser.
+- Solve your own Bonfire. Confirm that your tests work as expected and that your instructions are sufficiently clear.
+- Submit a pull request to Free Code Camp's Staging branch and in the pull request body, link to a gist that has your algorithmic solution.
+
+Here is a description of each of the Bonfires' fields.
+- Name - The name of your challenge. It's OK for this to be humorous but it must be brief and relevant to the task.
+- Difficulty - Attempt to rate difficulty compared against existing bonfire challenges. A good proxy for the difficulty of a bonfire is how long it takes you to solve it. For every 15 minutes it takes, increase the difficulty. For example, a one-hour bonfire should probably be a 4.
+- Description- Separate paragraphs with a line break. Only the first paragraph is visible prior to a user before they click the the 'More information' button. All necessary information must be included in the first paragraph. Write this first paragraph as succinctly as possible. Subsequent paragraphs should offer hints or details if needed. If your subject matter warrants deeper understanding, you may link to Wikipedia.
+- Challenge Seed - This is where you set up what will be in the editor when the camper starts the bonfire.
+- Tests - These tests are what bring your challenge to life. Without them, we cannot confirm the accuracy of a user's submitted answer. Choose your tests wisely. Bonfire tests are written using the Chai.js assertion library. Please use the should and expect syntax for end user readability. As an example of what not do to, many of the original Bonfire challenges are written with assert syntax and many of the test cases are difficult to read. If your bonfire question has a lot of edge cases, you will need to write many tests for full coverage. If you find yourself writing more tests than you desire, you may consider simplifying the requirements of your bonfire challenge. For difficulty level 1 through 3, you will generally only need 2 to 4 tests.
 - MDNlinks- Take a look at `seed_data/bonfireMDNlinks.js`. If any of these concepts are relevant to your bonfire, be sure to include them. If you know of an MDN article that isn't linked here, you can add it to the bonfireMDNlinks.js file before adding it to your bonfire.
\ No newline at end of file
diff --git a/What-to-do-if-you-speak-a-language-that-Free-Code-Camp-does-not-yet-support.md b/What-to-do-if-you-speak-a-language-that-Free-Code-Camp-does-not-yet-support.md
index ccb9114..984ca20 100644
--- a/What-to-do-if-you-speak-a-language-that-Free-Code-Camp-does-not-yet-support.md
+++ b/What-to-do-if-you-speak-a-language-that-Free-Code-Camp-does-not-yet-support.md
@@ -1,7 +1,7 @@
-Translation is an all-or-nothing proposal.
-
-We won't be able to add new languages to Free Code Camp until all of our challenges are translated into that language.
-
-In addition to translating these initially, we'll also need to maintain the translation as the challenges are gradually updated.
-
+Translation is an all-or-nothing proposal.
+
+We won't be able to add new languages to Free Code Camp until all of our challenges are translated into that language.
+
+In addition to translating these initially, we'll also need to maintain the translation as the challenges are gradually updated.
+
 If you're able to help us, you can join our [translation Trello board](https://trello.com/b/m7zhwXka/fcc-translation) by sending @quincylarson your email address in Gitter.
\ No newline at end of file
diff --git a/What-you-will-learn,-and-in-what-sequence-you-will-learn-it.md b/What-you-will-learn,-and-in-what-sequence-you-will-learn-it.md
index 5aac7ed..81285ad 100644
--- a/What-you-will-learn,-and-in-what-sequence-you-will-learn-it.md
+++ b/What-you-will-learn,-and-in-what-sequence-you-will-learn-it.md
@@ -1,14 +1,14 @@
-- [HTML5](https://developer.mozilla.org/en-US/docs/Web/HTML) - the structure of web pages
-- [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS) - the visual style of web pages
-- [Bootstrap](http://getbootstrap.com/) - a "responsive design" tool that helps your websites look great on tablets and phones
-- [jQuery](https://jquery.com/) and [Ajax] (https://developer.mozilla.org/en-US/docs/AJAX) - easy tools for controlling content in the browser
-- [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript) - the one programming language that all web browsers use
-- [Algorithms](https://en.wikipedia.org/wiki/Algorithm) - step-by-step recipes for getting things done
-- [Git](https://git-scm.com/) - a version control system for saving and sharing your projects
-- [MongoDB](https://www.mongodb.org/) - a popular non-relational database
-- [Angular.js](https://angularjs.org/) - a tool for making exciting web interfaces
-- [Express.js](http://expressjs.com/)- a powerful web development framework
-- [Node.js](https://nodejs.org/) - a platform for creating scalable network applications.
-- [Agile](https://en.wikipedia.org/wiki/Agile_software_development) - a set of software development principles that focus the design and production of a project on the needs of its users
-
+- [HTML5](https://developer.mozilla.org/en-US/docs/Web/HTML) - the structure of web pages
+- [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS) - the visual style of web pages
+- [Bootstrap](http://getbootstrap.com/) - a "responsive design" tool that helps your websites look great on tablets and phones
+- [jQuery](https://jquery.com/) and [Ajax] (https://developer.mozilla.org/en-US/docs/AJAX) - easy tools for controlling content in the browser
+- [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript) - the one programming language that all web browsers use
+- [Algorithms](https://en.wikipedia.org/wiki/Algorithm) - step-by-step recipes for getting things done
+- [Git](https://git-scm.com/) - a version control system for saving and sharing your projects
+- [MongoDB](https://www.mongodb.org/) - a popular non-relational database
+- [Angular.js](https://angularjs.org/) - a tool for making exciting web interfaces
+- [Express.js](http://expressjs.com/)- a powerful web development framework
+- [Node.js](https://nodejs.org/) - a platform for creating scalable network applications.
+- [Agile](https://en.wikipedia.org/wiki/Agile_software_development) - a set of software development principles that focus the design and production of a project on the needs of its users
+
 [[http://2.bp.blogspot.com/-CPfmVm56c7c/VTwEpZkHBtI/AAAAAAAAAks/0dEwiH-DjEE/s1600/curriculum-diagram-full.jpg|width=600px]]
\ No newline at end of file
diff --git a/Why-You-Should-Try-Pair-Programming.md b/Why-You-Should-Try-Pair-Programming.md
index 4f109b8..7dd1ad9 100644
--- a/Why-You-Should-Try-Pair-Programming.md
+++ b/Why-You-Should-Try-Pair-Programming.md
@@ -1,24 +1,24 @@
-#### When I started working through my first bonfires, I was really scared of speaking to strangers. What would this person think about me? 
-Would I even be able to write good code with someone watching me?
-
-Now, some weeks later I've pair programmed and reviewed code with more than 40 campers and let me tell you: it's not as scary as it seems.
-It's perfectly normal to feel that way. Most of the campers that I've talked to agree that they were nervous too.
-
-**Here are a few good reasons to try pair programming** (I wish I knew this when I started...):
-
-### You can...
-- Build your professional network
-- Meet new friends - develop a support group
-- Improve social skills
-- Get motivation and encouragement from fellow campers
-- See other's coding styles
-- Learn from each other
-- Strengthen your strengths and get help finding and improving your weaknesses
-- Pair with **more** experienced dev to **improve your skills**
-- Pair with **less** experienced dev to **test your knowledge**
-- Gain a new skill that will be useful for interviews and employment down the road
-
-With the right person, pair programming is one of the best ways to learn at the same time as you make new friends!
-[You might also want to know how you could be a good pair programmer!](https://github.com/FreeCodeCamp/freecodecamp/wiki/Tips-on-How-To-Become-A-Good-Pair-Programmer)
-
+#### When I started working through my first bonfires, I was really scared of speaking to strangers. What would this person think about me? 
+Would I even be able to write good code with someone watching me?
+
+Now, some weeks later I've pair programmed and reviewed code with more than 40 campers and let me tell you: it's not as scary as it seems.
+It's perfectly normal to feel that way. Most of the campers that I've talked to agree that they were nervous too.
+
+**Here are a few good reasons to try pair programming** (I wish I knew this when I started...):
+
+### You can...
+- Build your professional network
+- Meet new friends - develop a support group
+- Improve social skills
+- Get motivation and encouragement from fellow campers
+- See other's coding styles
+- Learn from each other
+- Strengthen your strengths and get help finding and improving your weaknesses
+- Pair with **more** experienced dev to **improve your skills**
+- Pair with **less** experienced dev to **test your knowledge**
+- Gain a new skill that will be useful for interviews and employment down the road
+
+With the right person, pair programming is one of the best ways to learn at the same time as you make new friends!
+[You might also want to know how you could be a good pair programmer!](https://github.com/FreeCodeCamp/freecodecamp/wiki/Tips-on-How-To-Become-A-Good-Pair-Programmer)
+
 // Samuel (gr33n) with help from Ryan (rsprice)
\ No newline at end of file
diff --git a/Why-does-Free-Code-Camp-use-JavaScript-instead-of-Ruby-or-Python.md b/Why-does-Free-Code-Camp-use-JavaScript-instead-of-Ruby-or-Python.md
index 1063c6e..7593c42 100644
--- a/Why-does-Free-Code-Camp-use-JavaScript-instead-of-Ruby-or-Python.md
+++ b/Why-does-Free-Code-Camp-use-JavaScript-instead-of-Ruby-or-Python.md
@@ -1,7 +1,7 @@
-Like JavaScript, Ruby and Python are high-level scripting languages that can be used for full stack web development.
-
-But even if you learned these languages, you'd still need to learn JavaScript. That's because JavaScript is the only language that runs in web browsers. JavaScript has been around for 20 years, and it is still growing in popularity.
-
-Because of this, JavaScript has more tools and online learning resources than any other language.
-
+Like JavaScript, Ruby and Python are high-level scripting languages that can be used for full stack web development.
+
+But even if you learned these languages, you'd still need to learn JavaScript. That's because JavaScript is the only language that runs in web browsers. JavaScript has been around for 20 years, and it is still growing in popularity.
+
+Because of this, JavaScript has more tools and online learning resources than any other language.
+
 ![A chart showing the volume of new GitHub repositories by year, with JavaScript growing and most languages declining.](https://s3.amazonaws.com/freecodecamp/github-repo-growth.png)
\ No newline at end of file
diff --git a/Why-you-need-Free-Code-Camp.md b/Why-you-need-Free-Code-Camp.md
index 218cbbe..616cf6e 100644
--- a/Why-you-need-Free-Code-Camp.md
+++ b/Why-you-need-Free-Code-Camp.md
@@ -1,8 +1,8 @@
-You need Free Code Camp because learning to code is hard.
-
-Most people who successfully learn to code:
-
-- Make friends with people who code
-- Code a little every day
-
+You need Free Code Camp because learning to code is hard.
+
+Most people who successfully learn to code:
+
+- Make friends with people who code
+- Code a little every day
+
 Free Code Camp gives you the structure and the community you need so you can successfully learn to code.
\ No newline at end of file
diff --git a/Wiki-Style-Guide.md b/Wiki-Style-Guide.md
index f882f4d..f3353ca 100644
--- a/Wiki-Style-Guide.md
+++ b/Wiki-Style-Guide.md
@@ -1,17 +1,17 @@
-###"Wiki" is a Hawaiian word meaning "quick". Keep this in mind when creating wiki articles.
-
-We are always happy to help new contributors write, edit, and localize our wiki articles. Help us make Free Code Camp the best it can be.
-
-You can create a new wiki page by clicking the "New Page" button at top right.
-
-Keep your wiki articles short and focused.
-
-You can include images if they help you better communicate your subject.
-
-#### Use descriptive, punctuation-free titles that follow a name convention as `Name of Page`.
-Our wiki articles are [written in GitHub-flavor Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet).
-- [Bonfire Style Guide](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Style-Guide)
-
-If you have questions about contributing to the Free Code Camp Wiki message [@rafase282](https://gitter.im/rafase282) in [Gitter](https://github.com/FreeCodeCamp/freecodecamp/wiki/Gitter)
-
-We look forward to wiki-ing with you!
+###"Wiki" is a Hawaiian word meaning "quick". Keep this in mind when creating wiki articles.
+
+We are always happy to help new contributors write, edit, and localize our wiki articles. Help us make Free Code Camp the best it can be.
+
+You can create a new wiki page by clicking the "New Page" button at top right.
+
+Keep your wiki articles short and focused.
+
+You can include images if they help you better communicate your subject.
+
+#### Use descriptive, punctuation-free titles that follow a name convention as `Name of Page`.
+Our wiki articles are [written in GitHub-flavor Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet).
+- [Bonfire Style Guide](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonfire-Style-Guide)
+
+If you have questions about contributing to the Free Code Camp Wiki message [@rafase282](https://gitter.im/rafase282) in [Gitter](https://github.com/FreeCodeCamp/freecodecamp/wiki/Gitter)
+
+We look forward to wiki-ing with you!
diff --git a/World-Language-Chat-Rooms.md b/World-Language-Chat-Rooms.md
index f488c4b..57aa292 100644
--- a/World-Language-Chat-Rooms.md
+++ b/World-Language-Chat-Rooms.md
@@ -1,30 +1,30 @@
-The following are our language-specific chat rooms.
-
-**Please note that all chat rooms listed here are publicly accessible and indexed by search engines, so only share email addresses or other sensitive information in private messages.**
-
-- [Albanian](https://gitter.im/freecodecamp/Albanian)
-- [Arabic](https://gitter.im/freecodecamp/Arabic)
-- [Chinese](https://gitter.im/freecodecamp/Chinese)
-- [German](https://gitter.im/freecodecamp/Deutsch)
-- [Dutch](https://gitter.im/freecodecamp/Dutch)
-- [Spanish](https://gitter.im/freecodecamp/Espanol)
-- [French](https://gitter.im/freecodecamp/Francais)
-- [Japanese](https://gitter.im/freecodecamp/Japanese)
-- [Korean](https://gitter.im/freecodecamp/Korean)
-- [Persian](https://gitter.im/freecodecamp/Persian)
-- [Portugues](https://gitter.im/freecodecamp/Portugues)
-- [Romanian](https://gitter.im/freecodecamp/Romanian)
-- [Russian](https://gitter.im/freecodecamp/Russian)
-- [Swedish](https://gitter.im/freecodecamp/Swedish)
-- [Thai](https://gitter.im/freecodecamp/Thai)
-- [Tagalog](https://gitter.im/freecodecamp/Tagalog)
-- [Vietnamese](https://gitter.im/freecodecamp/Vietnamese)
-
-### Additional Chat Room Lists
-* [[Official Free Code Camp Chat Rooms|Official-Free-Code-Camp-Chat-Rooms]]
-* [[Casual Chat Rooms|Casual-Chat-Rooms]]
-* [[Campsite Chat Rooms|List-of-Free-Code-Camp-city-based-Campsites]]
-
-By joining these chat rooms, you accept our [Code of Conduct](https://github.com/FreeCodeCamp/freecodecamp/wiki/Code-of-Conduct).
-
+The following are our language-specific chat rooms.
+
+**Please note that all chat rooms listed here are publicly accessible and indexed by search engines, so only share email addresses or other sensitive information in private messages.**
+
+- [Albanian](https://gitter.im/freecodecamp/Albanian)
+- [Arabic](https://gitter.im/freecodecamp/Arabic)
+- [Chinese](https://gitter.im/freecodecamp/Chinese)
+- [German](https://gitter.im/freecodecamp/Deutsch)
+- [Dutch](https://gitter.im/freecodecamp/Dutch)
+- [Spanish](https://gitter.im/freecodecamp/Espanol)
+- [French](https://gitter.im/freecodecamp/Francais)
+- [Japanese](https://gitter.im/freecodecamp/Japanese)
+- [Korean](https://gitter.im/freecodecamp/Korean)
+- [Persian](https://gitter.im/freecodecamp/Persian)
+- [Portugues](https://gitter.im/freecodecamp/Portugues)
+- [Romanian](https://gitter.im/freecodecamp/Romanian)
+- [Russian](https://gitter.im/freecodecamp/Russian)
+- [Swedish](https://gitter.im/freecodecamp/Swedish)
+- [Thai](https://gitter.im/freecodecamp/Thai)
+- [Tagalog](https://gitter.im/freecodecamp/Tagalog)
+- [Vietnamese](https://gitter.im/freecodecamp/Vietnamese)
+
+### Additional Chat Room Lists
+* [[Official Free Code Camp Chat Rooms|Official-Free-Code-Camp-Chat-Rooms]]
+* [[Casual Chat Rooms|Casual-Chat-Rooms]]
+* [[Campsite Chat Rooms|List-of-Free-Code-Camp-city-based-Campsites]]
+
+By joining these chat rooms, you accept our [Code of Conduct](https://github.com/FreeCodeCamp/freecodecamp/wiki/Code-of-Conduct).
+
 [Official Free Code Camp chat rooms](https://github.com/FreeCodeCamp/freecodecamp/wiki/Official-Free-Code-Camp-Chat-Rooms)
\ No newline at end of file
diff --git a/Write-and-Run-ES6-Code-in-Browser.md b/Write-and-Run-ES6-Code-in-Browser.md
index 5a32f25..ce0505b 100644
--- a/Write-and-Run-ES6-Code-in-Browser.md
+++ b/Write-and-Run-ES6-Code-in-Browser.md
@@ -1,21 +1,21 @@
-> Include the following code in the page.
-
-```html
-<!-- Write these first. Here `bootstrap.js` doesn't mean Twitter Bootstrap. -->
-<script src="https://google.github.io/traceur-compiler/bin/traceur.js"></script>
-<script src="https://google.github.io/traceur-compiler/src/bootstrap.js"></script>
-
-<!-- Edit the src. Write `type="module"` (important) for linked script -->
-<script src="app.js" type="module"></script>
-
-<!-- Remember to write `type="module"` for embedded script -->
-<script type="module">
-    //→ write your script here
-</script>
-```
-
-**See:** [Traceur Compiler Getting Started](https://github.com/google/traceur-compiler/wiki/Getting-Started)
-
-**Demo:** [ES6 Demo Repo Source](https://github.com/abhisekp/JS-Weird-Parts/tree/109ab3b0c94d1fbf9bbc402dd36e9bca60d5b456)
-
+> Include the following code in the page.
+
+```html
+<!-- Write these first. Here `bootstrap.js` doesn't mean Twitter Bootstrap. -->
+<script src="https://google.github.io/traceur-compiler/bin/traceur.js"></script>
+<script src="https://google.github.io/traceur-compiler/src/bootstrap.js"></script>
+
+<!-- Edit the src. Write `type="module"` (important) for linked script -->
+<script src="app.js" type="module"></script>
+
+<!-- Remember to write `type="module"` for embedded script -->
+<script type="module">
+    //→ write your script here
+</script>
+```
+
+**See:** [Traceur Compiler Getting Started](https://github.com/google/traceur-compiler/wiki/Getting-Started)
+
+**Demo:** [ES6 Demo Repo Source](https://github.com/abhisekp/JS-Weird-Parts/tree/109ab3b0c94d1fbf9bbc402dd36e9bca60d5b456)
+
  
\ No newline at end of file
diff --git a/Writing-great-git-commit-message.md b/Writing-great-git-commit-message.md
index dfe869b..6f56094 100644
--- a/Writing-great-git-commit-message.md
+++ b/Writing-great-git-commit-message.md
@@ -1,34 +1,34 @@
-### The seven rules of a great git commit message
-
-1. Separate subject from body with a blank line
-2. Limit the subject line to 50 characters
-3. Capitalize the subject line
-4. Do not end the subject line with a period
-5. Use the imperative mood in the subject line
-6. Wrap the body at 72 characters
-7. Use the body to explain what and why vs. how
-
-**A properly formed git commit subject line should always be able to complete the following sentence:**
-
-> If applied, this commit will *`<<your subject line here>>`*
-
-## &nbsp;
-
-**For example:**
-
-* If applied, this commit will ***Refactor subsystem X for readability***
-* If applied, this commit will ***Update getting started documentation***
-* If applied, this commit will ***Remove deprecated methods***
-* If applied, this commit will ***Release version 1.0.0***
-* If applied, this commit will ***Merge pull request #123 from user/branch***
-
-**Notice how this doesn't work for the other non-imperative forms:**
-
-* If applied, this commit will *~~fixed bug with Y~~*
-* If applied, this commit will *~~changing behavior of X~~*
-* If applied, this commit will *~~more fixes for broken stuff~~*
-* If applied, this commit will *~~sweet new API methods~~*
-
-**Remember:** *Use of the imperative is important only in the subject line. You can relax this restriction when you're writing the body.*
-
+### The seven rules of a great git commit message
+
+1. Separate subject from body with a blank line
+2. Limit the subject line to 50 characters
+3. Capitalize the subject line
+4. Do not end the subject line with a period
+5. Use the imperative mood in the subject line
+6. Wrap the body at 72 characters
+7. Use the body to explain what and why vs. how
+
+**A properly formed git commit subject line should always be able to complete the following sentence:**
+
+> If applied, this commit will *`<<your subject line here>>`*
+
+## &nbsp;
+
+**For example:**
+
+* If applied, this commit will ***Refactor subsystem X for readability***
+* If applied, this commit will ***Update getting started documentation***
+* If applied, this commit will ***Remove deprecated methods***
+* If applied, this commit will ***Release version 1.0.0***
+* If applied, this commit will ***Merge pull request #123 from user/branch***
+
+**Notice how this doesn't work for the other non-imperative forms:**
+
+* If applied, this commit will *~~fixed bug with Y~~*
+* If applied, this commit will *~~changing behavior of X~~*
+* If applied, this commit will *~~more fixes for broken stuff~~*
+* If applied, this commit will *~~sweet new API methods~~*
+
+**Remember:** *Use of the imperative is important only in the subject line. You can relax this restriction when you're writing the body.*
+
 **Reference:** http://chris.beams.io/posts/git-commit
\ No newline at end of file
diff --git a/Zipline-Use-the-Twitchtv-JSON-API.md b/Zipline-Use-the-Twitchtv-JSON-API.md
index fa90d26..6f01414 100644
--- a/Zipline-Use-the-Twitchtv-JSON-API.md
+++ b/Zipline-Use-the-Twitchtv-JSON-API.md
@@ -1,19 +1,19 @@
-If you're trying to tackle this challenge with jQuery's `$.getJSON()` method, chances are you'll get an error message concerning Cross-Origin Resource Sharing (CORS).
-
-The easiest way to resolve this is to use jQuery's JSONP capabilities. From the Twitch API's [readme page](https://github.com/justintv/Twitch-API#json-p):
-
-> All API methods support JSON-P by providing a callback parameter with the request.
-
-Also the [jQuery documentation](http://api.jquery.com/jQuery.getJSON/) states:
-
-> If the URL includes the string "callback=?" (or similar, as defined by the server-side API), the request is treated as JSONP instead.
-
-Here's an example call to fetch Free Code Camp's Twitch channel data:
-
-```js
-$.getJSON('https://api.twitch.tv/kraken/streams/freecodecamp?callback=?', function(data) {
-  console.log(data);
-});
-```
-
+If you're trying to tackle this challenge with jQuery's `$.getJSON()` method, chances are you'll get an error message concerning Cross-Origin Resource Sharing (CORS).
+
+The easiest way to resolve this is to use jQuery's JSONP capabilities. From the Twitch API's [readme page](https://github.com/justintv/Twitch-API#json-p):
+
+> All API methods support JSON-P by providing a callback parameter with the request.
+
+Also the [jQuery documentation](http://api.jquery.com/jQuery.getJSON/) states:
+
+> If the URL includes the string "callback=?" (or similar, as defined by the server-side API), the request is treated as JSONP instead.
+
+Here's an example call to fetch Free Code Camp's Twitch channel data:
+
+```js
+$.getJSON('https://api.twitch.tv/kraken/streams/freecodecamp?callback=?', function(data) {
+  console.log(data);
+});
+```
+
 JSONP is considered insecure [according to Wikipedia](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing#CORS_vs_JSONP), but should be sufficient for our purposes. For a detailed discussion on Twitch's CORS restriction, please read [issue #133](https://github.com/justintv/Twitch-API/issues/133) on the Twitch-API repository.
\ No newline at end of file
diff --git a/_Footer.md b/_Footer.md
index 3928479..1769174 100644
--- a/_Footer.md
+++ b/_Footer.md
@@ -1,8 +1,8 @@
-Learn to code and help nonprofits. Join our open source community in 15 seconds at http://freecodecamp.com
-
-[Follow our Medium blog](https://medium.freecodecamp.com)    
-[Follow Quincy on Quora](http://www.quora.com/Quincy-Larson/answers)     
-[Follow us on Twitter](https://twitter.com/intent/user?screen_name=freecodecamp)  
-[Like us on Facebook](https://www.facebook.com/freecodecamp)  
-
+Learn to code and help nonprofits. Join our open source community in 15 seconds at http://freecodecamp.com
+
+[Follow our Medium blog](https://medium.freecodecamp.com)    
+[Follow Quincy on Quora](http://www.quora.com/Quincy-Larson/answers)     
+[Follow us on Twitter](https://twitter.com/intent/user?screen_name=freecodecamp)  
+[Like us on Facebook](https://www.facebook.com/freecodecamp)  
+
 And be sure to click the "Star" button in the upper right of this page.
\ No newline at end of file
diff --git a/_Sidebar.md b/_Sidebar.md
index fc37dba..a3271c0 100644
--- a/_Sidebar.md
+++ b/_Sidebar.md
@@ -1,40 +1,40 @@
-New to Free Code Camp?
-- [Start Here](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Start-Here)
-- [How to use this Wiki](https://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-use-the-Free-Code-Camp-Wiki)
-- [Challenge Guides](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Map)
-
-JS Concepts
-- [Closures](https://github.com/freecodecamp/freecodecamp/wiki/js-closures)
-- [Falsy](https://github.com/freecodecamp/freecodecamp/wiki/js-falsy)
-- [Functions](https://github.com/freecodecamp/freecodecamp/wiki/js-functions)
-- [Immutable](https://github.com/freecodecamp/freecodecamp/wiki/js-immutable)
-- [Loops](https://github.com/freecodecamp/freecodecamp/wiki/js-loops)
-- [Scope](https://github.com/freecodecamp/freecodecamp/wiki/js-scope)
-- [Ternary](https://github.com/freecodecamp/freecodecamp/wiki/js-ternary)
-- [Truthy](https://github.com/freecodecamp/freecodecamp/wiki/js-truthy)
-
-JS Language Reference
-- [arguments](https://github.com/freecodecamp/freecodecamp/wiki/js-arguments)
-- [Array.prototype.filter](https://github.com/freecodecamp/freecodecamp/wiki/js-array-prototype-filter)
-- [Array.prototype.indexOf](https://github.com/freecodecamp/freecodecamp/wiki/js-array-prototype-indexof)
-- [Array.prototype.map](https://github.com/freecodecamp/freecodecamp/wiki/js-array-prototype-map)
-- [Array.prototype.pop](https://github.com/freecodecamp/freecodecamp/wiki/js-array-prototype-pop)
-- [Array.prototype.push](https://github.com/freecodecamp/freecodecamp/wiki/js-array-prototype-push)
-- [Array.prototype.shift](https://github.com/freecodecamp/freecodecamp/wiki/js-array-prototype-shift)
-- [Array.prototype.slice](https://github.com/freecodecamp/freecodecamp/wiki/js-array-prototype-slice)
-- [Array.prototype.some](https://github.com/freecodecamp/freecodecamp/wiki/js-array-prototype-some)
-- [Array.prototype.toString](https://github.com/freecodecamp/freecodecamp/wiki/js-array-prototype-tostring)
-- [Boolean](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-Boolean)
-- [for loop](https://github.com/freecodecamp/freecodecamp/wiki/js-for-loop)
-- [for..in loop](https://github.com/freecodecamp/freecodecamp/wiki/js-for-in-loop)
-- [for..of loop](https://github.com/freecodecamp/freecodecamp/wiki/js-for-of-loop)
-- [String.prototype.split](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-String-prototype-split)
-- [String.prototype.toLowerCase](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-String-prototype-toLowerCase)
-- [String.prototype.toUpperCase](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-String-prototype-toUpperCase)
-- [undefined](https://github.com/freecodecamp/freecodecamp/wiki/js-undefined)
-
-Other Links
-- [Programming Fundamental](https://github.com/freecodecamp/freecodecamp/wiki/programming-fundamental)
-- [JS Resources](https://github.com/freecodecamp/freecodecamp/wiki/js-resources)
-- [JS RegEx Resources](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Regex-Resources)
+New to Free Code Camp?
+- [Start Here](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Start-Here)
+- [How to use this Wiki](https://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-use-the-Free-Code-Camp-Wiki)
+- [Challenge Guides](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Map)
+
+JS Concepts
+- [Closures](https://github.com/freecodecamp/freecodecamp/wiki/js-closures)
+- [Falsy](https://github.com/freecodecamp/freecodecamp/wiki/js-falsy)
+- [Functions](https://github.com/freecodecamp/freecodecamp/wiki/js-functions)
+- [Immutable](https://github.com/freecodecamp/freecodecamp/wiki/js-immutable)
+- [Loops](https://github.com/freecodecamp/freecodecamp/wiki/js-loops)
+- [Scope](https://github.com/freecodecamp/freecodecamp/wiki/js-scope)
+- [Ternary](https://github.com/freecodecamp/freecodecamp/wiki/js-ternary)
+- [Truthy](https://github.com/freecodecamp/freecodecamp/wiki/js-truthy)
+
+JS Language Reference
+- [arguments](https://github.com/freecodecamp/freecodecamp/wiki/js-arguments)
+- [Array.prototype.filter](https://github.com/freecodecamp/freecodecamp/wiki/js-array-prototype-filter)
+- [Array.prototype.indexOf](https://github.com/freecodecamp/freecodecamp/wiki/js-array-prototype-indexof)
+- [Array.prototype.map](https://github.com/freecodecamp/freecodecamp/wiki/js-array-prototype-map)
+- [Array.prototype.pop](https://github.com/freecodecamp/freecodecamp/wiki/js-array-prototype-pop)
+- [Array.prototype.push](https://github.com/freecodecamp/freecodecamp/wiki/js-array-prototype-push)
+- [Array.prototype.shift](https://github.com/freecodecamp/freecodecamp/wiki/js-array-prototype-shift)
+- [Array.prototype.slice](https://github.com/freecodecamp/freecodecamp/wiki/js-array-prototype-slice)
+- [Array.prototype.some](https://github.com/freecodecamp/freecodecamp/wiki/js-array-prototype-some)
+- [Array.prototype.toString](https://github.com/freecodecamp/freecodecamp/wiki/js-array-prototype-tostring)
+- [Boolean](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-Boolean)
+- [for loop](https://github.com/freecodecamp/freecodecamp/wiki/js-for-loop)
+- [for..in loop](https://github.com/freecodecamp/freecodecamp/wiki/js-for-in-loop)
+- [for..of loop](https://github.com/freecodecamp/freecodecamp/wiki/js-for-of-loop)
+- [String.prototype.split](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-String-prototype-split)
+- [String.prototype.toLowerCase](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-String-prototype-toLowerCase)
+- [String.prototype.toUpperCase](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-String-prototype-toUpperCase)
+- [undefined](https://github.com/freecodecamp/freecodecamp/wiki/js-undefined)
+
+Other Links
+- [Programming Fundamental](https://github.com/freecodecamp/freecodecamp/wiki/programming-fundamental)
+- [JS Resources](https://github.com/freecodecamp/freecodecamp/wiki/js-resources)
+- [JS RegEx Resources](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/JS-Regex-Resources)
 - [Web Resources](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Web-Resources)
\ No newline at end of file
diff --git a/bf-bouncer.md b/bf-bouncer.md
index 5cb0724..591f19e 100644
--- a/bf-bouncer.md
+++ b/bf-bouncer.md
@@ -1,77 +1,77 @@
-#:fire: Bonfire: Falsy Bouncer
-
-# The problem
-
-Remove all falsy values from an array.
-
-Falsy values in javascript are false, null, 0, "", undefined, and NaN.
-
-```javascript
-function bouncer(arr) {
-  // Don't show a false ID to this bouncer.
-  return arr;
-}
-
-bouncer([7, "ate", "", false, 9]);
-```
-
-## Analysis
-Using ![Array.filter(_callback_)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) to remove elements from an array.
-
-The _callback_ function is called for each array element to check if it will be filtered (removed).
-
-## Example
-```javascript
-function isBigEnough(value) {
-  return value >= 10;
-}
-var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
-// filtered is [12, 130, 44]
-```
-
-## :warning: My Solution is coming up!
-Don't scroll down if you don't want to see it!
-     
-
-```
-                           10...
-                        9...
-                     8...
-                  7...
-               6...
-            5...
-         4...
-      3...
-   2...
-1...
-
-GO!!!
-   
-```
-
-## Code Solution:
-
-```javascript
-function bouncer(arr) {
-  // Don't show a false ID to this bouncer.
-  function isNotFalsy(value) {
-      return value;
-  }
-
-  var myArr = arr.filter(isNotFalsy);
-
-  return myArr;
-}
-```
-
-# References
-- **Array.filter()**: [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)
-- **Gorka Hernández Blog**: [https://www.gorkahernandez.com/blog/fcc-bonfire-series-115-falsey-bouncer/](https://www.gorkahernandez.com/blog/fcc-bonfire-series-115-falsey-bouncer/)
-
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:
-`Thanks @StrongeLeeroy @HelioGuilherme66`
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
-
+#:fire: Bonfire: Falsy Bouncer
+
+# The problem
+
+Remove all falsy values from an array.
+
+Falsy values in javascript are false, null, 0, "", undefined, and NaN.
+
+```javascript
+function bouncer(arr) {
+  // Don't show a false ID to this bouncer.
+  return arr;
+}
+
+bouncer([7, "ate", "", false, 9]);
+```
+
+## Analysis
+Using ![Array.filter(_callback_)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) to remove elements from an array.
+
+The _callback_ function is called for each array element to check if it will be filtered (removed).
+
+## Example
+```javascript
+function isBigEnough(value) {
+  return value >= 10;
+}
+var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
+// filtered is [12, 130, 44]
+```
+
+## :warning: My Solution is coming up!
+Don't scroll down if you don't want to see it!
+     
+
+```
+                           10...
+                        9...
+                     8...
+                  7...
+               6...
+            5...
+         4...
+      3...
+   2...
+1...
+
+GO!!!
+   
+```
+
+## Code Solution:
+
+```javascript
+function bouncer(arr) {
+  // Don't show a false ID to this bouncer.
+  function isNotFalsy(value) {
+      return value;
+  }
+
+  var myArr = arr.filter(isNotFalsy);
+
+  return myArr;
+}
+```
+
+# References
+- **Array.filter()**: [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)
+- **Gorka Hernández Blog**: [https://www.gorkahernandez.com/blog/fcc-bonfire-series-115-falsey-bouncer/](https://www.gorkahernandez.com/blog/fcc-bonfire-series-115-falsey-bouncer/)
+
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:
+`Thanks @StrongeLeeroy @HelioGuilherme66`
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+
diff --git a/bonfire-falsey-bouncer.md b/bonfire-falsey-bouncer.md
index 44501dd..0d46294 100644
--- a/bonfire-falsey-bouncer.md
+++ b/bonfire-falsey-bouncer.md
@@ -1,86 +1,86 @@
-# The problem
-Remove all falsy values from an array.
-Falsy values in javascript are false, null, 0, "", undefined, and NaN.
-
-For example: `bouncer([7, "ate", "", false, 9], "");` must return [7, "ate", 9]
-
-We are encouraged to use these 2 links:
-
-[Boolean Objects](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)
-
-[Array.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)
-
-
-## Analysis
-We need to return an array that has been modified with the filter() method to remove the elements that we deem falsy values. We define these as false, null, 0, "", undefined, and NaN.
-
-## Understanding the Boolean object
-Passing an initial value to a Boolean object converts this value to a Boolean value. This Boolean value will be false if the value is 0, -0, null, false, NaN, undefined, or the empty string (""). The Boolean value will be true for any other value. The false instances cover all the cases we must consider falsy values. 
-
-## Understanding the filter() method
-The filter method takes the argument of a custom callback functions. The filter method loops through all the elements of an array, and runs the custom callback function to determine whether or not to keep the element in the array. If your custom function returns true, it keeps the element in the array. If it returns false, it removes the element from the array.
-
-So build a custom callback function that tests if a particular element returns a Boolean object evaluating to false. Call this function from the filter() method.
-
-## :construction: My Solution is coming up!
-Don't scroll down if you don't want to see it!
-
-![warning](http://www.yourdrum.com/yourdrum/images/2007/10/10/red_warning_sign_2.gif)        
-
-```
-           ,,,         ,,,
-          ;"   ^;     ;'   ",
-          ;    s$$$$$$$s     ;
-          ,  ss$$$$$$$$$$s  ,'
-          ;s$$$$$$$$$$$$$$$
-          $$$$$$$$$$$$$$$$$$
-         $$$$P""Y$$$Y""W$$$$$      -{ Happy Camping! }
-         $$$$  p"$$$"q  $$$$$
-         $$$$  .$$$$$.  $$$$
-          $$DcaU$$$$$$$$$$
-            "Y$$$"*"$$$Y"    
-                "$b.$$"
-```
-
-## Code Solution:
-
-```javascript
-function bouncer(arr) {
-  // callback function for filter method
-  function noFalsy(value) {
-  // Retreive primitive Boolean value based on the element in array currently being tested via filter method
-  // This primitive Boolean value equates to false if the value being added is omitted or is 0, -0, null, false, NaN, undefined, or ""
-  var x = new Boolean(value);
-  if (x == false)
-//returning false to the filter method removes the element from the array
-    return false;
-  //returning true to the filter method keeps the element in the array
-  else
-    return true;
-  }
-  //return the array after modifying it with the filter method
-  return arr.filter(noFalsy); 
-}
-bouncer([7, "ate", "", false, 9], "");
-```
-
-## Code Solution (Short Version):
-
-```javascript
-function bouncer(arr) {
-  return arr.filter(function(value){
-    var x = new Boolean(value);
-    return x != false;
-  }); 
-}
-```
-# References
-- [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)
-
-- [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)
-
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @jones-codes`
-
+# The problem
+Remove all falsy values from an array.
+Falsy values in javascript are false, null, 0, "", undefined, and NaN.
+
+For example: `bouncer([7, "ate", "", false, 9], "");` must return [7, "ate", 9]
+
+We are encouraged to use these 2 links:
+
+[Boolean Objects](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)
+
+[Array.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)
+
+
+## Analysis
+We need to return an array that has been modified with the filter() method to remove the elements that we deem falsy values. We define these as false, null, 0, "", undefined, and NaN.
+
+## Understanding the Boolean object
+Passing an initial value to a Boolean object converts this value to a Boolean value. This Boolean value will be false if the value is 0, -0, null, false, NaN, undefined, or the empty string (""). The Boolean value will be true for any other value. The false instances cover all the cases we must consider falsy values. 
+
+## Understanding the filter() method
+The filter method takes the argument of a custom callback functions. The filter method loops through all the elements of an array, and runs the custom callback function to determine whether or not to keep the element in the array. If your custom function returns true, it keeps the element in the array. If it returns false, it removes the element from the array.
+
+So build a custom callback function that tests if a particular element returns a Boolean object evaluating to false. Call this function from the filter() method.
+
+## :construction: My Solution is coming up!
+Don't scroll down if you don't want to see it!
+
+![warning](http://www.yourdrum.com/yourdrum/images/2007/10/10/red_warning_sign_2.gif)        
+
+```
+           ,,,         ,,,
+          ;"   ^;     ;'   ",
+          ;    s$$$$$$$s     ;
+          ,  ss$$$$$$$$$$s  ,'
+          ;s$$$$$$$$$$$$$$$
+          $$$$$$$$$$$$$$$$$$
+         $$$$P""Y$$$Y""W$$$$$      -{ Happy Camping! }
+         $$$$  p"$$$"q  $$$$$
+         $$$$  .$$$$$.  $$$$
+          $$DcaU$$$$$$$$$$
+            "Y$$$"*"$$$Y"    
+                "$b.$$"
+```
+
+## Code Solution:
+
+```javascript
+function bouncer(arr) {
+  // callback function for filter method
+  function noFalsy(value) {
+  // Retreive primitive Boolean value based on the element in array currently being tested via filter method
+  // This primitive Boolean value equates to false if the value being added is omitted or is 0, -0, null, false, NaN, undefined, or ""
+  var x = new Boolean(value);
+  if (x == false)
+//returning false to the filter method removes the element from the array
+    return false;
+  //returning true to the filter method keeps the element in the array
+  else
+    return true;
+  }
+  //return the array after modifying it with the filter method
+  return arr.filter(noFalsy); 
+}
+bouncer([7, "ate", "", false, 9], "");
+```
+
+## Code Solution (Short Version):
+
+```javascript
+function bouncer(arr) {
+  return arr.filter(function(value){
+    var x = new Boolean(value);
+    return x != false;
+  }); 
+}
+```
+# References
+- [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)
+
+- [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)
+
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @jones-codes`
+
 > **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
\ No newline at end of file
diff --git a/bonfire-find-the-longest-word-in-a-string.md b/bonfire-find-the-longest-word-in-a-string.md
index 7457579..85b602a 100644
--- a/bonfire-find-the-longest-word-in-a-string.md
+++ b/bonfire-find-the-longest-word-in-a-string.md
@@ -1,50 +1,50 @@
-# Explanation:
-You have to go through each word and figure out which one is the longest and return not the word, but how many characters it has.
-
-## Hint: 1
-You should split the string into an array of words.
-
-## Hint: 2
-You will need to figure out a way to keep track globally of the greatest current length.
-
-## Hint: 3
-Remember how to get the length of elements on the array? `Array[index].length`
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function findLongestWord(str) {
-  var words = str.split(' ');
-  var maxLength = 0;
-
-  for (var i = 0; i < words.length; i++) {
-    if (words[i].length > maxLength) {
-      maxLength = words[i].length;
-    }
-  }
-
-  return maxLength;
-}
-```
-
-# Code Explanation:
-Take the string and convert it into an array of words. Declare a variable to keep track of the maximum length and loop from 0 to the length of the array of words.
-
-Then check for the longest word by comparing the current word to the previous one and storing the new longest word. At the end of the loop just return the number value of the variable maxLength.
-
-## Alternate Solution
-Using `.reduce()`
-```js
-function findLongestWord(s) {return s.split(' ').reduce(function(x,y){return Math.max(x, y.length)}, 0)}
-```
-for more information: [Click.](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce)
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282`
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Explanation:
+You have to go through each word and figure out which one is the longest and return not the word, but how many characters it has.
+
+## Hint: 1
+You should split the string into an array of words.
+
+## Hint: 2
+You will need to figure out a way to keep track globally of the greatest current length.
+
+## Hint: 3
+Remember how to get the length of elements on the array? `Array[index].length`
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function findLongestWord(str) {
+  var words = str.split(' ');
+  var maxLength = 0;
+
+  for (var i = 0; i < words.length; i++) {
+    if (words[i].length > maxLength) {
+      maxLength = words[i].length;
+    }
+  }
+
+  return maxLength;
+}
+```
+
+# Code Explanation:
+Take the string and convert it into an array of words. Declare a variable to keep track of the maximum length and loop from 0 to the length of the array of words.
+
+Then check for the longest word by comparing the current word to the previous one and storing the new longest word. At the end of the loop just return the number value of the variable maxLength.
+
+## Alternate Solution
+Using `.reduce()`
+```js
+function findLongestWord(s) {return s.split(' ').reduce(function(x,y){return Math.max(x, y.length)}, 0)}
+```
+for more information: [Click.](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce)
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282`
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/bonfire-finders-keepers.md b/bonfire-finders-keepers.md
index 059ddbe..8a49bf3 100644
--- a/bonfire-finders-keepers.md
+++ b/bonfire-finders-keepers.md
@@ -1,62 +1,62 @@
-# Explanation:
-The problem is quite simple to understand. You will check for each element in the array that is passed in the first argument, if the element plugged in to the function passed as the second argument returns true the first time. We do not care about the second or third one that is true, only the very first one if any. If there are none, then return undefined. This last bit is not explained but it is part of the tests used.
-
-## Hint: 1
-You can use the function directly from the parameter, no need to rename it or anything.
-
-## Hint: 2
-You need to pass an element and record it if the function returns true, for this you just have to pass the element as the parameter for the function.
-
-## Hint: 3
-If no element satisfy the function then you must return **undefined**
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function find(arr, func) {
-  // Make num undefined by default
-  var num;
-
-  // Loop thorugh the array and use the function to check
-  for (var a = 0; a < arr.length; a++) {
-    if (func(arr[a])) {
-      // Store the first case and break the loop
-      num = arr[a];
-      return num;
-    }
-  }
-
-  // otherwise return undefined
-  return num;
-}
-
-find([1, 2, 3, 4], function(num) {
-  return num % 2 === 0;
-});
-```
-
-## Another Code Solution:
-```js
-function find(arr, func) {
-  filterArr = arr.filter(func); //filter array with the function provided
-  
-  return filterArr[0]; //return the first element that returns true, or undefined if no elements return true
-}
-
-find([1, 2, 3, 4], function(num){ return num % 2 === 0; });
-```
-# Code Explanation:
-- To make the code easier, create an undefined variable that will be returned.
-- Loop through the array to check for each element if it satisfy the function. This is done by passing the arr[index of the loop] as the parameter for the function from the second argument.
-- If true, then store the array element, and return it. This will stop the loop. No else needed.
-- If the loop was not broken and it has ended, then return **num** which by default is undefined. This means that none of the elements from the array satisfied the function.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282 @JamesKee`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Explanation:
+The problem is quite simple to understand. You will check for each element in the array that is passed in the first argument, if the element plugged in to the function passed as the second argument returns true the first time. We do not care about the second or third one that is true, only the very first one if any. If there are none, then return undefined. This last bit is not explained but it is part of the tests used.
+
+## Hint: 1
+You can use the function directly from the parameter, no need to rename it or anything.
+
+## Hint: 2
+You need to pass an element and record it if the function returns true, for this you just have to pass the element as the parameter for the function.
+
+## Hint: 3
+If no element satisfy the function then you must return **undefined**
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function find(arr, func) {
+  // Make num undefined by default
+  var num;
+
+  // Loop thorugh the array and use the function to check
+  for (var a = 0; a < arr.length; a++) {
+    if (func(arr[a])) {
+      // Store the first case and break the loop
+      num = arr[a];
+      return num;
+    }
+  }
+
+  // otherwise return undefined
+  return num;
+}
+
+find([1, 2, 3, 4], function(num) {
+  return num % 2 === 0;
+});
+```
+
+## Another Code Solution:
+```js
+function find(arr, func) {
+  filterArr = arr.filter(func); //filter array with the function provided
+  
+  return filterArr[0]; //return the first element that returns true, or undefined if no elements return true
+}
+
+find([1, 2, 3, 4], function(num){ return num % 2 === 0; });
+```
+# Code Explanation:
+- To make the code easier, create an undefined variable that will be returned.
+- Loop through the array to check for each element if it satisfy the function. This is done by passing the arr[index of the loop] as the parameter for the function from the second argument.
+- If true, then store the array element, and return it. This will stop the loop. No else needed.
+- If the loop was not broken and it has ended, then return **num** which by default is undefined. This means that none of the elements from the array satisfied the function.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282 @JamesKee`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/bonfire-inventory-update.md b/bonfire-inventory-update.md
index 542e274..539cd49 100644
--- a/bonfire-inventory-update.md
+++ b/bonfire-inventory-update.md
@@ -1,135 +1,135 @@
-# Problem Explanation:
-- Look through an array of new products, in the format: `[quantity, name]`
-- Return an array containing updated quantities for each item that already existed, and any new products
-
-## Hint: 1
-- You need to work through each item of the new inventory to see if it exists in the current inventory or not.
-- Remember that the product name is stored as the second element of each sub-array: `arr2[0][1] = "Bowling Ball"`
-
-## Hint: 2
-- If the item exists, you need to add the quantity from the new inventory
-- If the item doesn't exist, you need to add the entire item
-
-## Hint: 3
-- Return the completed inventory in alphabetical order
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function inventory(arr1, arr2) {
-
-    // Variable for location of product
-    var index;
-
-    // A helper method to return the index of a specified product (undefined if not found)
-    var getProductIndex = function (name) {
-        for (var i = 0; i < this.length; i++) {
-            if (this[i][1] === name) {
-                return i;
-            }
-        }
-        return undefined;
-    }
-
-    // For each item of the new Inventory
-    for (var i = 0; i < arr2.length; i++) {
-
-        // Invoke our helper function using arr1 as this
-        index = getProductIndex.call(arr1, arr2[i][1]);
-
-        // If the item doesn't exist
-        if (index === undefined) {
-            // Push the entire item
-            arr1.push(arr2[i]);
-        } else {
-            // Add the new quantity of the current item
-            arr1[index][0] += arr2[i][0];
-        }
-
-    }
-
-    // Sort alphabetically, by the product name of each item
-    arr1.sort(function (a, b) {
-        if (a[1] > b[1]) {
-            return 1;
-        }
-        if (a[1] < b[1]) {
-            return -1;
-        }
-        return 0;
-    });
-
-    return arr1;
-}
-```
-Solution 2
-```js
-function inventory(arr1, arr2) {
-  // All inventory must be accounted for or you're fired!
-
-  var index;
-  var arrCurInvName = []; // Names of arr1's items
-  var arrNeInvName = []; // Names of arr2's items
-
-  // Same as using two for loops, this takes care of increasing the number of stock quantity.
-  arr1.map(function(item1) {
-    return arr2.map(function(item2) {
-      if (item1[1] === item2[1]) {
-        item1[0] = item1[0] + item2[0]; //Increase number of stock
-      }
-    });
-  });
-
-  // Get item's name for new Inventory
-  arr2.map(function(item) {
-    arrNeInvName.push(item[1]);
-  });
-
-  // Get item's name for Current Inventory
-  arr1.map(function(item) {
-    arrCurInvName.push(item[1]);
-  });
-
-  // Add new inventory items to current inventory.
-  arrNeInvName.map(function(item) {
-    if (arrCurInvName.indexOf(item) === -1) {
-      index = arrNeInvName.indexOf(item);
-      arr1.push(arr2[index]);
-    }
-  });
-
-  // Sort the array alphabetically using the second element of the array as base.
-  arr1.sort(function(currItem, nextItem) {
-
-    //Ternary function to avoid using if else
-    return currItem[1] > nextItem[1] ? 1 : -1;
-  });
-
-  return arr1;
-}
-```
-
-# Code Explanation:
-- Start by creating a variable to store the index in.  Define variables outside of loops
-- Create a helper function to find the index of a product name
-- The helper function iterates through each element of the array that it is called on, until it can either find the name parameter, or if it cannot find it then returns undefined
-- Then, work through each item in the delivery, and set index to the result of invoking our helper function on the current inventory (IE: Search the new inventory for that product name, and return it's index)
-- If we can't find that product, then we can add the entire product (Name and quantity) to the current inventory
-- Otherwise, then we can add the quantity from the new inventory
-- Then we sort the array by the product name (`arr1[x][1]` holds the name)
-- Return the sorted array
-- For Solution two, the explanation is on the code. Feel free to use different components on each solution to create your own if you like.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @guyjoseph @Rafase282`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
-
-## Related links
-- [Function.prototype.call](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call)
-- [Array.prototype.sort](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)
+# Problem Explanation:
+- Look through an array of new products, in the format: `[quantity, name]`
+- Return an array containing updated quantities for each item that already existed, and any new products
+
+## Hint: 1
+- You need to work through each item of the new inventory to see if it exists in the current inventory or not.
+- Remember that the product name is stored as the second element of each sub-array: `arr2[0][1] = "Bowling Ball"`
+
+## Hint: 2
+- If the item exists, you need to add the quantity from the new inventory
+- If the item doesn't exist, you need to add the entire item
+
+## Hint: 3
+- Return the completed inventory in alphabetical order
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function inventory(arr1, arr2) {
+
+    // Variable for location of product
+    var index;
+
+    // A helper method to return the index of a specified product (undefined if not found)
+    var getProductIndex = function (name) {
+        for (var i = 0; i < this.length; i++) {
+            if (this[i][1] === name) {
+                return i;
+            }
+        }
+        return undefined;
+    }
+
+    // For each item of the new Inventory
+    for (var i = 0; i < arr2.length; i++) {
+
+        // Invoke our helper function using arr1 as this
+        index = getProductIndex.call(arr1, arr2[i][1]);
+
+        // If the item doesn't exist
+        if (index === undefined) {
+            // Push the entire item
+            arr1.push(arr2[i]);
+        } else {
+            // Add the new quantity of the current item
+            arr1[index][0] += arr2[i][0];
+        }
+
+    }
+
+    // Sort alphabetically, by the product name of each item
+    arr1.sort(function (a, b) {
+        if (a[1] > b[1]) {
+            return 1;
+        }
+        if (a[1] < b[1]) {
+            return -1;
+        }
+        return 0;
+    });
+
+    return arr1;
+}
+```
+Solution 2
+```js
+function inventory(arr1, arr2) {
+  // All inventory must be accounted for or you're fired!
+
+  var index;
+  var arrCurInvName = []; // Names of arr1's items
+  var arrNeInvName = []; // Names of arr2's items
+
+  // Same as using two for loops, this takes care of increasing the number of stock quantity.
+  arr1.map(function(item1) {
+    return arr2.map(function(item2) {
+      if (item1[1] === item2[1]) {
+        item1[0] = item1[0] + item2[0]; //Increase number of stock
+      }
+    });
+  });
+
+  // Get item's name for new Inventory
+  arr2.map(function(item) {
+    arrNeInvName.push(item[1]);
+  });
+
+  // Get item's name for Current Inventory
+  arr1.map(function(item) {
+    arrCurInvName.push(item[1]);
+  });
+
+  // Add new inventory items to current inventory.
+  arrNeInvName.map(function(item) {
+    if (arrCurInvName.indexOf(item) === -1) {
+      index = arrNeInvName.indexOf(item);
+      arr1.push(arr2[index]);
+    }
+  });
+
+  // Sort the array alphabetically using the second element of the array as base.
+  arr1.sort(function(currItem, nextItem) {
+
+    //Ternary function to avoid using if else
+    return currItem[1] > nextItem[1] ? 1 : -1;
+  });
+
+  return arr1;
+}
+```
+
+# Code Explanation:
+- Start by creating a variable to store the index in.  Define variables outside of loops
+- Create a helper function to find the index of a product name
+- The helper function iterates through each element of the array that it is called on, until it can either find the name parameter, or if it cannot find it then returns undefined
+- Then, work through each item in the delivery, and set index to the result of invoking our helper function on the current inventory (IE: Search the new inventory for that product name, and return it's index)
+- If we can't find that product, then we can add the entire product (Name and quantity) to the current inventory
+- Otherwise, then we can add the quantity from the new inventory
+- Then we sort the array by the product name (`arr1[x][1]` holds the name)
+- Return the sorted array
+- For Solution two, the explanation is on the code. Feel free to use different components on each solution to create your own if you like.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @guyjoseph @Rafase282`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+
+## Related links
+- [Function.prototype.call](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call)
+- [Array.prototype.sort](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)
diff --git a/bonfire-make-a-person.md b/bonfire-make-a-person.md
index b606b55..aaa3734 100644
--- a/bonfire-make-a-person.md
+++ b/bonfire-make-a-person.md
@@ -1,68 +1,68 @@
-# Explanation:
-When I started the program I figured I just had to create the six functions mentioned in the details. However, it was not that simple. Creating them as a function was not the right way, I had to create them in a different way to make them a key.
-
-There is also a tricky part as you need six keys no more or less, so at first I had the variable that store the original name as a key too which was wrong.
-
-As for the usage of array, that is optional, you could also create new variable to hold the separated string if you wish but an array is easier to deal with as strings are immutable.
-
-Read the instructions carefully, it is always a good hint in itself to run the code and check what the test results were so you know what to expect but do not fixate yourself on that. Once you understand what you need to do, this problem is very easy and straightforward.
-
-## Hint: 1
-Use the **this** notation to create the keys instead of regular functions: This means instead of `var varName = function() {/*...*/}` you should use `this.varName = function() {/*...*/}`
-
-## Hint: 2
-The program has a test that checks for how many keys you used, they have to be exactly six, the six mentioned in the details section. This means if you need to work with variables, make them local and not a key: `this.fullName = firstAndLast;`
-
-## Hint: 3
-Often the code would not work the way you expect it due to wrong variable names, make sure to check that you spell them the right way. This happens to all of us at some point.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-Please try hard before you check this solution.
-
-```js
-var Person = function(firstAndLast) {
-  var fullName = firstAndLast;
-
-  this.getFirstName = function() {
-    return fullName.split(" ")[0];
-  };
-
-  this.getLastName = function() {
-    return fullName.split(" ")[1];
-  };
-
-  this.getFullName = function() {
-    return fullName;
-  };
-
-  this.setFirstName = function(name) {
-    fullName = name + " " + fullName.split(" ")[1];
-  };
-
-  this.setLastName = function(name) {
-    fullName = fullName.split(" ")[0] + " " + name;
-  };
-  
-  this.setFullName = function(name) {
-    fullName = name;
-  };
-};
-
-var bob = new Person('Bob Ross');
-bob.getFullName();
-```
-
-# Code Explanation:
-- Create a variable that will make a copy of the full name that was passed as a parameter.
-- Then we can proceed to create the six methods needed and return what is asked for.
-- For the individual setters, we can use the split to turn the fullname into an array of first and last names and concatenate the unchanged portion of the name with what was passed as a parameter.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282 @ltegman`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Explanation:
+When I started the program I figured I just had to create the six functions mentioned in the details. However, it was not that simple. Creating them as a function was not the right way, I had to create them in a different way to make them a key.
+
+There is also a tricky part as you need six keys no more or less, so at first I had the variable that store the original name as a key too which was wrong.
+
+As for the usage of array, that is optional, you could also create new variable to hold the separated string if you wish but an array is easier to deal with as strings are immutable.
+
+Read the instructions carefully, it is always a good hint in itself to run the code and check what the test results were so you know what to expect but do not fixate yourself on that. Once you understand what you need to do, this problem is very easy and straightforward.
+
+## Hint: 1
+Use the **this** notation to create the keys instead of regular functions: This means instead of `var varName = function() {/*...*/}` you should use `this.varName = function() {/*...*/}`
+
+## Hint: 2
+The program has a test that checks for how many keys you used, they have to be exactly six, the six mentioned in the details section. This means if you need to work with variables, make them local and not a key: `this.fullName = firstAndLast;`
+
+## Hint: 3
+Often the code would not work the way you expect it due to wrong variable names, make sure to check that you spell them the right way. This happens to all of us at some point.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+Please try hard before you check this solution.
+
+```js
+var Person = function(firstAndLast) {
+  var fullName = firstAndLast;
+
+  this.getFirstName = function() {
+    return fullName.split(" ")[0];
+  };
+
+  this.getLastName = function() {
+    return fullName.split(" ")[1];
+  };
+
+  this.getFullName = function() {
+    return fullName;
+  };
+
+  this.setFirstName = function(name) {
+    fullName = name + " " + fullName.split(" ")[1];
+  };
+
+  this.setLastName = function(name) {
+    fullName = fullName.split(" ")[0] + " " + name;
+  };
+  
+  this.setFullName = function(name) {
+    fullName = name;
+  };
+};
+
+var bob = new Person('Bob Ross');
+bob.getFullName();
+```
+
+# Code Explanation:
+- Create a variable that will make a copy of the full name that was passed as a parameter.
+- Then we can proceed to create the six methods needed and return what is asked for.
+- For the individual setters, we can use the split to turn the fullname into an array of first and last names and concatenate the unchanged portion of the name with what was passed as a parameter.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282 @ltegman`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/bonfire-mutations.md b/bonfire-mutations.md
index eab86c4..ba6fedc 100644
--- a/bonfire-mutations.md
+++ b/bonfire-mutations.md
@@ -1,61 +1,61 @@
-# Problem Explanation:
-- Return true if the string in the first element of the array contains all of the letters of the string in the second element of the array..
-
-## Hint: 1
-- If everything is lowercase it will be easier to compare.
-
-## Hint: 2
-- Our strings might be easier to work with if they were arrays of characters.
-
-## Hint: 3
-- A loop might help. Use `indexOf()` to check if the letter of the second word is on the first.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function mutation(arr) {
-  var test = arr[1].toLowerCase();
-  var target = arr[0].toLowerCase();
-  test = test.split('');
-  target = target.split('');
-  for (i=0;i<test.length;i++) {
-    if (target.indexOf(test[i]) < 0)
-      return false;
-  }
-  return true;
- }
-```
-
-```js
-function mutation(arr) {
-  var first = arr[0].toLowerCase().split('');
-  var second = arr[1].toLowerCase().split('');
-  var temp = 0;
-  for (var s = 0; s < second.length; s++) {
-    if (first.indexOf(second[s]) > -1) {
-      temp += 0;
-    } else
-      temp += 1;
-  }
-
-  if (temp === 0)
-    return true;
-  else
-    return false;
-}
-```
-
-# Code Explanation:
-- First, we make the two strings in the array lowercase.  
-- Second, we split the individual strings in to 2 separate arrays of characters. test variable holds what we are looking for. target variable is where we are looking.   
-- Third, we loop through our test characters, and if they are not _all_ found we return false.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @sxmxc @Rafase282`
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Problem Explanation:
+- Return true if the string in the first element of the array contains all of the letters of the string in the second element of the array..
+
+## Hint: 1
+- If everything is lowercase it will be easier to compare.
+
+## Hint: 2
+- Our strings might be easier to work with if they were arrays of characters.
+
+## Hint: 3
+- A loop might help. Use `indexOf()` to check if the letter of the second word is on the first.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function mutation(arr) {
+  var test = arr[1].toLowerCase();
+  var target = arr[0].toLowerCase();
+  test = test.split('');
+  target = target.split('');
+  for (i=0;i<test.length;i++) {
+    if (target.indexOf(test[i]) < 0)
+      return false;
+  }
+  return true;
+ }
+```
+
+```js
+function mutation(arr) {
+  var first = arr[0].toLowerCase().split('');
+  var second = arr[1].toLowerCase().split('');
+  var temp = 0;
+  for (var s = 0; s < second.length; s++) {
+    if (first.indexOf(second[s]) > -1) {
+      temp += 0;
+    } else
+      temp += 1;
+  }
+
+  if (temp === 0)
+    return true;
+  else
+    return false;
+}
+```
+
+# Code Explanation:
+- First, we make the two strings in the array lowercase.  
+- Second, we split the individual strings in to 2 separate arrays of characters. test variable holds what we are looking for. target variable is where we are looking.   
+- Third, we loop through our test characters, and if they are not _all_ found we return false.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @sxmxc @Rafase282`
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/bonfire-no-repeats-please.md b/bonfire-no-repeats-please.md
index 10074c5..8f1f02c 100644
--- a/bonfire-no-repeats-please.md
+++ b/bonfire-no-repeats-please.md
@@ -1,110 +1,110 @@
-# Problem Explanation:
-- This task requires us to look at each possible permutation of a string. This is best done using a recursion function. Being able to build a function which collects all permutations of a string is a common interview question, so there is no shortage of tutorials out there on how to do this, in many different code languages.
-- This task can still be daunting even after watching a tutorial. You will want to send each new use of the function  3 inputs: 1. a new string (or character array) that is being built, 2. a position in your new string that's going to be filled next, and 3. an idea of what characters (more specifically positions) from the original string have yet to be used. The pseudo code will look something like this:
-
-  ```
-  var str = ???;
-  perm(current position in original string, what's been used in original string, current string build thus far){
-  if(current string is finished) {
-    print current string;
-  }else{
-    for(var i = 0; i < str.length; i++) {
-      if(str[i] has not been used) {
-        put str[i] into the current position;
-        mark str[i] as used
-        perm(current position in original string, what's been used in original string, current string build thus far)
-        unmark str[i] as used because another branch in the tree for i + 1 will still likely use it;
-      }
-    }
-  }
-  }
-  perm(0, nothing used yet, empty new string (or array the same size as str);
-  ```
-
-- Another way to think about this problem is to start from an empty space. Introduce the first letter to the space. This space will now contain the first sub-permutation. Here's a diagram illustrating the idea:
-
-![diagram](http://i.imgur.com/zFm5gRx.png)
-
-```js
-// An approach to introduce a new character to a permutation
-var ch = '?';
-var source = ['?', '?', '?'];     // Current sub-permutation
-var temp, dest = [];
-
-for(var i = 0; i <= source.length; ++i) {
-    temp = source.slice(0);    // Copy the array
-    temp.splice(i, 0, ch);    // Insert the new character
-    dest.push(temp);    // Store the new sub-permutation    
-}
-```
-
-Finding each permutation could then be done non-recursively by including the above in a function taking a source array and returning a destination array. For each letter of the input string, pass that character, as well as the array  returned from the previous call of the function.
-
-A way to visualize this is by considering a tree that starts with the first character of your string: ![Permutation Tree](http://i.imgur.com/t8zNarc.png)
-
-## Hint: 1
-- The easiest way is to use Heap's algorithm to recursively get a list of all the permutations.
-
-## Hint: 2
-- Once you have the list then just create a regular expression to catch the repeating characters.
-
-## Hint: 3
-- You will want to have the permutations as an array of joined strings instead of separated characters.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function permAlone(str) {
-
-  // Create a regex to match repeated consecutive characters.
-  var regex = /(.)\1+/g;
-
-  // Split the string into an array of characters.
-  var arr = str.split('');
-  var permutations = [];
-  var tmp;
-
-  // FUnction to swap variables' content.
-  function swap(index1, index2) {
-    tmp = arr[index1];
-    arr[index1] = arr[index2];
-    arr[index2] = tmp;
-  }
-
-  //Generate arrays of permutations using the algorithm.
-  function generate(int) {
-    if (int === 1) {
-      // Make sure to join the characters as we create  the permutation arrays
-      permutations.push(arr.join(''));
-    } else {
-      for (var i = 0; i != int; ++i) {
-        generate(int - 1);
-        swap(int % 2 ? 0 : i, int - 1);
-      }
-    }
-  }
-
-  generate(arr.length);
-
-  // Filter the array of repeated permutations.
-  var filtered = permutations.filter(function(string) {
-    return !string.match(regex);
-  });
-
-  //Return how many have no repetitions.
-  return filtered.length;
-}
-```
-
-# Code Explanation:
-- Read comments in code
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Philosophist @Rafase282`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Problem Explanation:
+- This task requires us to look at each possible permutation of a string. This is best done using a recursion function. Being able to build a function which collects all permutations of a string is a common interview question, so there is no shortage of tutorials out there on how to do this, in many different code languages.
+- This task can still be daunting even after watching a tutorial. You will want to send each new use of the function  3 inputs: 1. a new string (or character array) that is being built, 2. a position in your new string that's going to be filled next, and 3. an idea of what characters (more specifically positions) from the original string have yet to be used. The pseudo code will look something like this:
+
+  ```
+  var str = ???;
+  perm(current position in original string, what's been used in original string, current string build thus far){
+  if(current string is finished) {
+    print current string;
+  }else{
+    for(var i = 0; i < str.length; i++) {
+      if(str[i] has not been used) {
+        put str[i] into the current position;
+        mark str[i] as used
+        perm(current position in original string, what's been used in original string, current string build thus far)
+        unmark str[i] as used because another branch in the tree for i + 1 will still likely use it;
+      }
+    }
+  }
+  }
+  perm(0, nothing used yet, empty new string (or array the same size as str);
+  ```
+
+- Another way to think about this problem is to start from an empty space. Introduce the first letter to the space. This space will now contain the first sub-permutation. Here's a diagram illustrating the idea:
+
+![diagram](http://i.imgur.com/zFm5gRx.png)
+
+```js
+// An approach to introduce a new character to a permutation
+var ch = '?';
+var source = ['?', '?', '?'];     // Current sub-permutation
+var temp, dest = [];
+
+for(var i = 0; i <= source.length; ++i) {
+    temp = source.slice(0);    // Copy the array
+    temp.splice(i, 0, ch);    // Insert the new character
+    dest.push(temp);    // Store the new sub-permutation    
+}
+```
+
+Finding each permutation could then be done non-recursively by including the above in a function taking a source array and returning a destination array. For each letter of the input string, pass that character, as well as the array  returned from the previous call of the function.
+
+A way to visualize this is by considering a tree that starts with the first character of your string: ![Permutation Tree](http://i.imgur.com/t8zNarc.png)
+
+## Hint: 1
+- The easiest way is to use Heap's algorithm to recursively get a list of all the permutations.
+
+## Hint: 2
+- Once you have the list then just create a regular expression to catch the repeating characters.
+
+## Hint: 3
+- You will want to have the permutations as an array of joined strings instead of separated characters.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function permAlone(str) {
+
+  // Create a regex to match repeated consecutive characters.
+  var regex = /(.)\1+/g;
+
+  // Split the string into an array of characters.
+  var arr = str.split('');
+  var permutations = [];
+  var tmp;
+
+  // FUnction to swap variables' content.
+  function swap(index1, index2) {
+    tmp = arr[index1];
+    arr[index1] = arr[index2];
+    arr[index2] = tmp;
+  }
+
+  //Generate arrays of permutations using the algorithm.
+  function generate(int) {
+    if (int === 1) {
+      // Make sure to join the characters as we create  the permutation arrays
+      permutations.push(arr.join(''));
+    } else {
+      for (var i = 0; i != int; ++i) {
+        generate(int - 1);
+        swap(int % 2 ? 0 : i, int - 1);
+      }
+    }
+  }
+
+  generate(arr.length);
+
+  // Filter the array of repeated permutations.
+  var filtered = permutations.filter(function(string) {
+    return !string.match(regex);
+  });
+
+  //Return how many have no repetitions.
+  return filtered.length;
+}
+```
+
+# Code Explanation:
+- Read comments in code
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Philosophist @Rafase282`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/bonfire-pairwise.md b/bonfire-pairwise.md
index a842871..a6182dd 100644
--- a/bonfire-pairwise.md
+++ b/bonfire-pairwise.md
@@ -1,73 +1,73 @@
-# Explanation:
-The program should look for the numbers in the array which would add to make the number from the **arg.** Then instead of adding those numbers up, you will add their **indices** which is the reason why you get 11 on the example from detail.
-
-Remember that arrays start at index 0 and go from there so from [1,4,2,3,0,5] if we switch to their indices it would be [0,1,2,3,4,5] then we add indices 1 + 2 + 3 + 5 and we get 11. That is what we need to return.
-
-## Hint: 1
-Remember to return the smaller sum if multiple are possible. This means `[1,1,1],1 should use 0 + 1 instead of 0+1 & 1 +1 , etc`
-
-## Hint: 2
-Try using an array of indices to track when an index has been used or not.
-
-## Hint: 3
-It is easy to confuse indices as being numbers, but since you will be interacting with them, make sure to work with them as integers to prevent the code from behaving erratically.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function pairwise(arr, arg) {
-  // Create empty array to keep the arrays we will add.
-  var index = [];
-
-  // Loop to check the first number.
-  for (var a in arr) {
-    // temporal first number.
-    var temp = arr[a];
-
-    // Second loop to check against the first number.
-    for (var i = 1; i < arr.length; i++) {
-      // temporal secodn number.
-      var temp2 = arr[i];
-
-      // Key element, this check to make sure that the numbers add to arg
-      // also that the second index is greater than the first, and that neither
-      // of those indices are already on the array.
-      if (temp + temp2 === arg && i > a && index.indexOf(+a) === -1 && index.indexOf(+i) === -1) {
-        // if true then add both indices as integers then stop checking to avoid repeats.
-        index.push(+a, +i);
-        break;
-      }
-    }
-  }
-
-  // After the two loops are done, check if index is empty to return 0
-  // or if it is not, then use Array.reduce(callbackFunc) to returnt he sum
-  // of the numbers.
-  if (index.length >= 1) {
-    var addAll = function(a, b) {
-      return a + b;
-    };
-
-    return index.reduce(addAll);
-  } else
-    return 0;
-}
-```
-
-# Code Explanation:
-- First I create an empty array to store the indices that i will be adding.
-- Then I create an outer loop to get the first number.
-- Then get the second number from another inner loop.
-- Then I check to make sure that the two numbers add to arg that was passed as a parameter to the function; we also have to make sure the index from the second loop is grater than the one from the first loop to avoid adding wrong indices. We also have to check to make sure the indices are not already part of the **index** array.
-- If all that is true, then we add the two indices as integer by using '+' or parseInt(), and then we stop the inner loop since everything else would be redundant and wrong.
-- After all the loops are over, check in **index** is empty, if it is then return 0, otherwise return the addition of all the integers in it using Array.reduce(callbackFunc) to return the sum of the numbers.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Explanation:
+The program should look for the numbers in the array which would add to make the number from the **arg.** Then instead of adding those numbers up, you will add their **indices** which is the reason why you get 11 on the example from detail.
+
+Remember that arrays start at index 0 and go from there so from [1,4,2,3,0,5] if we switch to their indices it would be [0,1,2,3,4,5] then we add indices 1 + 2 + 3 + 5 and we get 11. That is what we need to return.
+
+## Hint: 1
+Remember to return the smaller sum if multiple are possible. This means `[1,1,1],1 should use 0 + 1 instead of 0+1 & 1 +1 , etc`
+
+## Hint: 2
+Try using an array of indices to track when an index has been used or not.
+
+## Hint: 3
+It is easy to confuse indices as being numbers, but since you will be interacting with them, make sure to work with them as integers to prevent the code from behaving erratically.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function pairwise(arr, arg) {
+  // Create empty array to keep the arrays we will add.
+  var index = [];
+
+  // Loop to check the first number.
+  for (var a in arr) {
+    // temporal first number.
+    var temp = arr[a];
+
+    // Second loop to check against the first number.
+    for (var i = 1; i < arr.length; i++) {
+      // temporal secodn number.
+      var temp2 = arr[i];
+
+      // Key element, this check to make sure that the numbers add to arg
+      // also that the second index is greater than the first, and that neither
+      // of those indices are already on the array.
+      if (temp + temp2 === arg && i > a && index.indexOf(+a) === -1 && index.indexOf(+i) === -1) {
+        // if true then add both indices as integers then stop checking to avoid repeats.
+        index.push(+a, +i);
+        break;
+      }
+    }
+  }
+
+  // After the two loops are done, check if index is empty to return 0
+  // or if it is not, then use Array.reduce(callbackFunc) to returnt he sum
+  // of the numbers.
+  if (index.length >= 1) {
+    var addAll = function(a, b) {
+      return a + b;
+    };
+
+    return index.reduce(addAll);
+  } else
+    return 0;
+}
+```
+
+# Code Explanation:
+- First I create an empty array to store the indices that i will be adding.
+- Then I create an outer loop to get the first number.
+- Then get the second number from another inner loop.
+- Then I check to make sure that the two numbers add to arg that was passed as a parameter to the function; we also have to make sure the index from the second loop is grater than the one from the first loop to avoid adding wrong indices. We also have to check to make sure the indices are not already part of the **index** array.
+- If all that is true, then we add the two indices as integer by using '+' or parseInt(), and then we stop the inner loop since everything else would be redundant and wrong.
+- After all the loops are over, check in **index** is empty, if it is then return 0, otherwise return the addition of all the integers in it using Array.reduce(callbackFunc) to return the sum of the numbers.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/bonfire-repeat-a-string-repeat-a-string.md b/bonfire-repeat-a-string-repeat-a-string.md
index 0b38af4..2c9015c 100644
--- a/bonfire-repeat-a-string-repeat-a-string.md
+++ b/bonfire-repeat-a-string-repeat-a-string.md
@@ -1,74 +1,74 @@
-# Explanation:
-The program is very simple, we have to take a variable and return that variable being repeated certain amount of times. No need to add space or anything, just keep repeating it into one single string.
-
-## Hint: 1
-You can't edit strings, you will need to create a variable to store the new string.
-
-## Hint: 2
-Create a loop to repeat the code as many times as needed.
-
-## Hint: 3
-Make the variable created store the current value and append the word to it.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function repeat(str, num) {
-  var accumulatedStr = '';
-
-  while (num > 0) {
-    accumulatedStr += str;
-    num--;
-  }
-
-  return accumulatedStr;
-}
-```
-
-Second Solution:
-
-```js
-function repeat(str, num) {
-  var newstr = [];
-  for (var i = 0; i < num; i++) {
-    newstr.push(str);
-  };
-  return newstr.join('');
-}
-
-repeat("abc", 3, "");
-```
-
-Third Solution:
-
-```js
-function repeat(str, num) {
-  if (num < 0) {
-    num = 0;
-  }
- var str = str.repeat(num);
- return str;
-}
-
-repeat("abc", 3, "");
-```
-# Code Explanation:
-- Create a variable to store the repeated word.
-- Use a while loop or for loop to repeat code as many times as needed according to `num`
-- The we just have to add the string to the variable created on step one. and increase or decrease num depending on how you set the loop.
-- At the end of the loop, return the variable for the repeated word.
-
-# Solution 3 Code Explanation:
-- Create an if loop to turn negative numbers into a "0" for the variable "num".
-- Create a new variable with .repeat() where variable "num" is the argument.
-- Then return the new variable for the repeated word.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282`
-
+# Explanation:
+The program is very simple, we have to take a variable and return that variable being repeated certain amount of times. No need to add space or anything, just keep repeating it into one single string.
+
+## Hint: 1
+You can't edit strings, you will need to create a variable to store the new string.
+
+## Hint: 2
+Create a loop to repeat the code as many times as needed.
+
+## Hint: 3
+Make the variable created store the current value and append the word to it.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function repeat(str, num) {
+  var accumulatedStr = '';
+
+  while (num > 0) {
+    accumulatedStr += str;
+    num--;
+  }
+
+  return accumulatedStr;
+}
+```
+
+Second Solution:
+
+```js
+function repeat(str, num) {
+  var newstr = [];
+  for (var i = 0; i < num; i++) {
+    newstr.push(str);
+  };
+  return newstr.join('');
+}
+
+repeat("abc", 3, "");
+```
+
+Third Solution:
+
+```js
+function repeat(str, num) {
+  if (num < 0) {
+    num = 0;
+  }
+ var str = str.repeat(num);
+ return str;
+}
+
+repeat("abc", 3, "");
+```
+# Code Explanation:
+- Create a variable to store the repeated word.
+- Use a while loop or for loop to repeat code as many times as needed according to `num`
+- The we just have to add the string to the variable created on step one. and increase or decrease num depending on how you set the loop.
+- At the end of the loop, return the variable for the repeated word.
+
+# Solution 3 Code Explanation:
+- Create an if loop to turn negative numbers into a "0" for the variable "num".
+- Create a new variable with .repeat() where variable "num" is the argument.
+- Then return the new variable for the repeated word.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282`
+
 > **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
\ No newline at end of file
diff --git a/bonfire-roman-numeral-converter.md b/bonfire-roman-numeral-converter.md
index f5eca1f..3579f08 100644
--- a/bonfire-roman-numeral-converter.md
+++ b/bonfire-roman-numeral-converter.md
@@ -1,54 +1,54 @@
-# Problem Explanation:
-- You will create a program that converts an integer to a roman numeral.
-
-## Hint: 1
-- Creating an array with the Roman Numerals and one with the decimal equivalent for the new forms will be very helpful.
-
-## Hint: 2
-- If you add the numbers that go before the new letter is introduce, it will save you plenty of code, like 4 and 9.
-
-## Hint: 3
-- You can't have more than three consecutive Roman numerals together.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-# Code Solution:
-
-```js
-var convert = function(num) {
-
-  // Create arrays with default conversion with matching indices.
-  var decimalValue = [1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000];
-  var romanNumeral = ['I', 'IV', 'V', 'IX', 'X', 'XL', 'L', 'XC', 'C', 'CD', 'D', 'CM', 'M'];
-
-  // Create a copy of num to work on and an empty string variable for the final roman number
-  var numCopy = num;
-  var romanized = '';
-
-  // While the decimal number is greater than 0,
-  while (numCopy > 0) {
-    // Loop through the indices of the decimalValue array.
-    for (var index = 0; index < decimalValue.length; index++) {
-      // Get the maximum decimal number less or equal then the decimal number.
-      if (+decimalValue[index] <= numCopy && +decimalValue[+index + 1] > numCopy) {
-        // Add the Roman numeral & decrease numCopy by the decimal equivalent.
-        romanized += romanNumeral[index];
-        numCopy -= decimalValue[index];
-      }
-    }
-  }
-
-  return romanized;
-};
-```
-
-# Code Explanation:
-- Read comments on code.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282`
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Problem Explanation:
+- You will create a program that converts an integer to a roman numeral.
+
+## Hint: 1
+- Creating an array with the Roman Numerals and one with the decimal equivalent for the new forms will be very helpful.
+
+## Hint: 2
+- If you add the numbers that go before the new letter is introduce, it will save you plenty of code, like 4 and 9.
+
+## Hint: 3
+- You can't have more than three consecutive Roman numerals together.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+# Code Solution:
+
+```js
+var convert = function(num) {
+
+  // Create arrays with default conversion with matching indices.
+  var decimalValue = [1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000];
+  var romanNumeral = ['I', 'IV', 'V', 'IX', 'X', 'XL', 'L', 'XC', 'C', 'CD', 'D', 'CM', 'M'];
+
+  // Create a copy of num to work on and an empty string variable for the final roman number
+  var numCopy = num;
+  var romanized = '';
+
+  // While the decimal number is greater than 0,
+  while (numCopy > 0) {
+    // Loop through the indices of the decimalValue array.
+    for (var index = 0; index < decimalValue.length; index++) {
+      // Get the maximum decimal number less or equal then the decimal number.
+      if (+decimalValue[index] <= numCopy && +decimalValue[+index + 1] > numCopy) {
+        // Add the Roman numeral & decrease numCopy by the decimal equivalent.
+        romanized += romanNumeral[index];
+        numCopy -= decimalValue[index];
+      }
+    }
+  }
+
+  return romanized;
+};
+```
+
+# Code Explanation:
+- Read comments on code.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282`
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/bonfire-slasher-flick.md b/bonfire-slasher-flick.md
index b1ccb5a..9cb1d76 100644
--- a/bonfire-slasher-flick.md
+++ b/bonfire-slasher-flick.md
@@ -1,63 +1,63 @@
-# The problem
-Return the remaining elements of an array after chopping off n elements from the head. Factorials are often represented with the shorthand notation n!
-
-For example: `slasher([1, 2, 3], 2);` must return [3]
-
-## Analysis
-Since we need only the remaining part of an array we can just remove what we don't.
-
-## Understanding slicing
-Slice allows to get only what you want from an array.
-
-## Understanding the splice
-If you want the **tail** of a snake remove the head first. The splice() method changes the content of an array by removing existing elements and/or adding new elements. This can be handy. Get an array, remove the first part and return the remaining.
-
-## :construction: My Solution is coming up!
-Don't scroll down if you don't want to see it!
-
-![warning](http://www.yourdrum.com/yourdrum/images/2007/10/10/red_warning_sign_2.gif)        
-
-```
-           ,,,         ,,,
-          ;"   ^;     ;'   ",
-          ;    s$$$$$$$s     ;
-          ,  ss$$$$$$$$$$s  ,'
-          ;s$$$$$$$$$$$$$$$
-          $$$$$$$$$$$$$$$$$$
-         $$$$P""Y$$$Y""W$$$$$      -{ Happy Camping! }
-         $$$$  p"$$$"q  $$$$$
-         $$$$  .$$$$$.  $$$$
-          $$DcaU$$$$$$$$$$
-            "Y$$$"*"$$$Y"    
-                "$b.$$"
-```
-
-## Code Solution:
-
-```javascript
-function slasher(arr, howMany) {
-  // remove the head
-  arr.splice(0,howMany);
-  //return the remaining or the tail  \__/(**)-<
-  return arr;
-}
-slasher([1, 2, 3], 2);
-```
-
-## Code Solution 2:
-
-```javascript
-function slasher(arr, howMany) {
-  
-  //Return string after the amount chopped off.
-  return arr.slice(howMany);
-
-}
-```
-# References
-- [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice)
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @clint74 @Rafase282 @M-Bowe`
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# The problem
+Return the remaining elements of an array after chopping off n elements from the head. Factorials are often represented with the shorthand notation n!
+
+For example: `slasher([1, 2, 3], 2);` must return [3]
+
+## Analysis
+Since we need only the remaining part of an array we can just remove what we don't.
+
+## Understanding slicing
+Slice allows to get only what you want from an array.
+
+## Understanding the splice
+If you want the **tail** of a snake remove the head first. The splice() method changes the content of an array by removing existing elements and/or adding new elements. This can be handy. Get an array, remove the first part and return the remaining.
+
+## :construction: My Solution is coming up!
+Don't scroll down if you don't want to see it!
+
+![warning](http://www.yourdrum.com/yourdrum/images/2007/10/10/red_warning_sign_2.gif)        
+
+```
+           ,,,         ,,,
+          ;"   ^;     ;'   ",
+          ;    s$$$$$$$s     ;
+          ,  ss$$$$$$$$$$s  ,'
+          ;s$$$$$$$$$$$$$$$
+          $$$$$$$$$$$$$$$$$$
+         $$$$P""Y$$$Y""W$$$$$      -{ Happy Camping! }
+         $$$$  p"$$$"q  $$$$$
+         $$$$  .$$$$$.  $$$$
+          $$DcaU$$$$$$$$$$
+            "Y$$$"*"$$$Y"    
+                "$b.$$"
+```
+
+## Code Solution:
+
+```javascript
+function slasher(arr, howMany) {
+  // remove the head
+  arr.splice(0,howMany);
+  //return the remaining or the tail  \__/(**)-<
+  return arr;
+}
+slasher([1, 2, 3], 2);
+```
+
+## Code Solution 2:
+
+```javascript
+function slasher(arr, howMany) {
+  
+  //Return string after the amount chopped off.
+  return arr.slice(howMany);
+
+}
+```
+# References
+- [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice)
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @clint74 @Rafase282 @M-Bowe`
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/bonfire-steamroller.md b/bonfire-steamroller.md
index c3438be..11a18c2 100644
--- a/bonfire-steamroller.md
+++ b/bonfire-steamroller.md
@@ -1,52 +1,52 @@
-# Explanation:
-This problem seems simple but you need to make sure to flatten any array, regardless of the level which is what adds a bit of difficulty to the problem.
-
-## Hint: 1
-You need to check if an element is an array or not.
-
-## Hint: 2
-If you are dealing with an array, then you need flatten it by getting the value inside of the array. This means if you have [[4]] then instead of returning [4] you need to return 4. If you get [[[4]]] then the same, you want the 4. You can access it with arr[index1][index2] to go a level deeper.
-
-## Hint: 3
-You will definitely need recursion or another way to go beyond two level arrays to make the code flexible and not hard-coded to the answers needed. Have fun!
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function steamroller(arr) {
-  var flattenedArray = [];
-
-  // Create function that adds an element if it is not an array.
-  // If it is an array, then loops through it and uses recursion on that array.
-  var flatten = function(arg) {
-    if (!Array.isArray(arg)) {
-      flattenedArray.push(arg);
-    } else {
-      for (var a in arg) {
-        flatten(arg[a]);
-      }
-    }
-  };
-
-  // Call the function for each element in the array
-  arr.forEach(flatten);
-  return flattenedArray;
-}
-```
-
-# Code Explanation:
-- Create a new variable to keep flattened arrays.
-- Create a function that will add non array elements to the new variable, and for the ones that are array it loops through them to get the element.
-- It does that by using recursion, if the element is an array then call the function again with a layer of array deeper to check if it is an array or not. if it is not then push that non-array element to the variable that gets returned. Otherwise, keep going deeper.
-- Invoke the function, the first time you will always pass it an array, so it always fall in to the isArray branch
-- Return the flattened array.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Explanation:
+This problem seems simple but you need to make sure to flatten any array, regardless of the level which is what adds a bit of difficulty to the problem.
+
+## Hint: 1
+You need to check if an element is an array or not.
+
+## Hint: 2
+If you are dealing with an array, then you need flatten it by getting the value inside of the array. This means if you have [[4]] then instead of returning [4] you need to return 4. If you get [[[4]]] then the same, you want the 4. You can access it with arr[index1][index2] to go a level deeper.
+
+## Hint: 3
+You will definitely need recursion or another way to go beyond two level arrays to make the code flexible and not hard-coded to the answers needed. Have fun!
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function steamroller(arr) {
+  var flattenedArray = [];
+
+  // Create function that adds an element if it is not an array.
+  // If it is an array, then loops through it and uses recursion on that array.
+  var flatten = function(arg) {
+    if (!Array.isArray(arg)) {
+      flattenedArray.push(arg);
+    } else {
+      for (var a in arg) {
+        flatten(arg[a]);
+      }
+    }
+  };
+
+  // Call the function for each element in the array
+  arr.forEach(flatten);
+  return flattenedArray;
+}
+```
+
+# Code Explanation:
+- Create a new variable to keep flattened arrays.
+- Create a function that will add non array elements to the new variable, and for the ones that are array it loops through them to get the element.
+- It does that by using recursion, if the element is an array then call the function again with a layer of array deeper to check if it is an array or not. if it is not then push that non-array element to the variable that gets returned. Otherwise, keep going deeper.
+- Invoke the function, the first time you will always pass it an array, so it always fall in to the isArray branch
+- Return the flattened array.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat:  **`thanks @Rafase282`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/bonfire-sum-all-odd-fibonacci-numbers.md b/bonfire-sum-all-odd-fibonacci-numbers.md
index 6a7377c..4472201 100644
--- a/bonfire-sum-all-odd-fibonacci-numbers.md
+++ b/bonfire-sum-all-odd-fibonacci-numbers.md
@@ -1,46 +1,46 @@
-# Explanation:
-You will need to gather all the **Fibonacci** numbers and then check for the odd ones. Once you get the odd ones then you will add them all. The last number should be the number given as a parameter if it actually happens to be an off Fibonacci number.
-
-## Hint: 1
-To get the next number of the series, you need to add the current one to the previous and that will give you the next one.
-
-## Hint: 2
-To check if a number is even all you have to check is if that number % 2 == 0.
-
-## Hint: 3
-As you get the next odd one, don't forget to add it to a global variable that can be returned at the end. `result += currNumber;` Will do the trick.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function sumFibs(num) {
-    var prevNumber = 0;
-    var currNumber = 1;
-    var result = 0;
-    while (currNumber <= num) {
-        if (currNumber % 2 !== 0) {
-            result += currNumber;
-        }
-
-        currNumber += prevNumber;
-        prevNumber = currNumber - prevNumber;
-    }
-
-    return result;
-}
-```
-
-# Code Explanation:
-- Create a variable to keep record of the current and previous numbers along with the result that will be returned.
-- Use a while loop to make sure we do not go over the number given as parameter.
-- We use the modulo operand to check if the current number is odd or even. If even add it to the result.
-- Complete the Fibonacci circle by rotating getting the next number and swapping values after.
-- Return the result.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282 @d3ddd`
+# Explanation:
+You will need to gather all the **Fibonacci** numbers and then check for the odd ones. Once you get the odd ones then you will add them all. The last number should be the number given as a parameter if it actually happens to be an off Fibonacci number.
+
+## Hint: 1
+To get the next number of the series, you need to add the current one to the previous and that will give you the next one.
+
+## Hint: 2
+To check if a number is even all you have to check is if that number % 2 == 0.
+
+## Hint: 3
+As you get the next odd one, don't forget to add it to a global variable that can be returned at the end. `result += currNumber;` Will do the trick.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function sumFibs(num) {
+    var prevNumber = 0;
+    var currNumber = 1;
+    var result = 0;
+    while (currNumber <= num) {
+        if (currNumber % 2 !== 0) {
+            result += currNumber;
+        }
+
+        currNumber += prevNumber;
+        prevNumber = currNumber - prevNumber;
+    }
+
+    return result;
+}
+```
+
+# Code Explanation:
+- Create a variable to keep record of the current and previous numbers along with the result that will be returned.
+- Use a while loop to make sure we do not go over the number given as parameter.
+- We use the modulo operand to check if the current number is odd or even. If even add it to the result.
+- Complete the Fibonacci circle by rotating getting the next number and swapping values after.
+- Return the result.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282 @d3ddd`
diff --git a/bonfire-title-case-a-sentence.md b/bonfire-title-case-a-sentence.md
index 8bb1e22..c330a63 100644
--- a/bonfire-title-case-a-sentence.md
+++ b/bonfire-title-case-a-sentence.md
@@ -1,97 +1,97 @@
-# Explanation:
-We have to return a sentence with camel case. This means that the first letter will always be in uppercase and the rest lowercase.
-
-## Hint: 1
-- You should start by splitting the string into an array of words.
-- Split the sentence.
-
-## Hint: 2
-- You should make the word lowercase before making the first letter uppercase.
-- Use replace method on each word to capitalize the first letter of each word.
-
-## Hint: 3
-- You will need to create a new string with pieces of the previous one and at the end merge everything into a single string again.
-- In replace method , give first argument as the position of the first letter using charAt. For second argument write a function to return the capitalized letter as the replacement.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-String.prototype.replaceAt = function(index, character) {
-    return this.substr(0, index) + character + this.substr(index+character.length);
-};
-
-
-function titleCase(str) {
-    var newTitle = str.split(' ');
-    var updatedTitle = [];
-    for (var st in newTitle) {
-        updatedTitle[st] = newTitle[st].toLowerCase().replaceAt(0, newTitle[st].charAt(0).toUpperCase());
-    }
-    return updatedTitle.join(' ');
-}
-```
-
-Second Solution:
-
-```js
-function titleCase(str) {
-  var newstr=str.toLowerCase().split(" ");
-  for(var i=0;i<newstr.length;i++){
-  var f=newstr[i].charAt(0);
- newstr[i]=newstr[i].replace(newstr[i].charAt(0),function replace(f){
-   return f.toUpperCase();
- });
-
-  }
-  console.log(newstr);
-  return newstr.join(" ");
-}
-
-titleCase("hello world");
-```
-
-Third Solution:
-
-```js
-function titleCase(str) {
-  str = str.toLowerCase().split(' ');
-  for (var i in str) {
-    str[i] = str[i].replace(str[i].charAt(0), str[i].charAt(0).toUpperCase());
-  };
-  return str.join(' ');
-}
-
-titleCase("I'm a little tea pot", "");
-```
-
-Minimal Solution:
-
-```js
-function titleCase(str) {
-  return str.replace(/\w\S*/g, function(word){
-    return word.charAt(0).toUpperCase()+word.substr(1).toLowerCase();}); 
-}
-
-titleCase("I'm a little tea pot", "");
-```
-
-Minimaler Solution:
-
-```js
-function titleCase(s) {return s.toLowerCase().replace(/^[a-z]|\s[a-z]/g, function(m){return m.toUpperCase()})}
-```
-
-# Code Explanation:
-We are modifying the `replaceAt` function using prototype to facilitate the use of the program.
-
-Split the string by whitespaces, and create a variable to track the updated title. Then we use a loop to turn turn the first character of the word to uppercase and the rest to lowercase. by creating concatenated string composed of the whole word in lowercase with the first character replaced by it's uppercase.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282 @PoojaKumar`
-
+# Explanation:
+We have to return a sentence with camel case. This means that the first letter will always be in uppercase and the rest lowercase.
+
+## Hint: 1
+- You should start by splitting the string into an array of words.
+- Split the sentence.
+
+## Hint: 2
+- You should make the word lowercase before making the first letter uppercase.
+- Use replace method on each word to capitalize the first letter of each word.
+
+## Hint: 3
+- You will need to create a new string with pieces of the previous one and at the end merge everything into a single string again.
+- In replace method , give first argument as the position of the first letter using charAt. For second argument write a function to return the capitalized letter as the replacement.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+String.prototype.replaceAt = function(index, character) {
+    return this.substr(0, index) + character + this.substr(index+character.length);
+};
+
+
+function titleCase(str) {
+    var newTitle = str.split(' ');
+    var updatedTitle = [];
+    for (var st in newTitle) {
+        updatedTitle[st] = newTitle[st].toLowerCase().replaceAt(0, newTitle[st].charAt(0).toUpperCase());
+    }
+    return updatedTitle.join(' ');
+}
+```
+
+Second Solution:
+
+```js
+function titleCase(str) {
+  var newstr=str.toLowerCase().split(" ");
+  for(var i=0;i<newstr.length;i++){
+  var f=newstr[i].charAt(0);
+ newstr[i]=newstr[i].replace(newstr[i].charAt(0),function replace(f){
+   return f.toUpperCase();
+ });
+
+  }
+  console.log(newstr);
+  return newstr.join(" ");
+}
+
+titleCase("hello world");
+```
+
+Third Solution:
+
+```js
+function titleCase(str) {
+  str = str.toLowerCase().split(' ');
+  for (var i in str) {
+    str[i] = str[i].replace(str[i].charAt(0), str[i].charAt(0).toUpperCase());
+  };
+  return str.join(' ');
+}
+
+titleCase("I'm a little tea pot", "");
+```
+
+Minimal Solution:
+
+```js
+function titleCase(str) {
+  return str.replace(/\w\S*/g, function(word){
+    return word.charAt(0).toUpperCase()+word.substr(1).toLowerCase();}); 
+}
+
+titleCase("I'm a little tea pot", "");
+```
+
+Minimaler Solution:
+
+```js
+function titleCase(s) {return s.toLowerCase().replace(/^[a-z]|\s[a-z]/g, function(m){return m.toUpperCase()})}
+```
+
+# Code Explanation:
+We are modifying the `replaceAt` function using prototype to facilitate the use of the program.
+
+Split the string by whitespaces, and create a variable to track the updated title. Then we use a loop to turn turn the first character of the word to uppercase and the rest to lowercase. by creating concatenated string composed of the whole word in lowercase with the first character replaced by it's uppercase.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282 @PoojaKumar`
+
 > **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
\ No newline at end of file
diff --git a/bonfire-truncate-a-string.md b/bonfire-truncate-a-string.md
index 2760fc2..d05d1a6 100644
--- a/bonfire-truncate-a-string.md
+++ b/bonfire-truncate-a-string.md
@@ -1,56 +1,56 @@
-# Explanation:
-We need to reduce the length of the string or **truncate** it if it is longer than the given maximum lengths specified and add `...` to the end. If it is not that long then we keep it as is.
-
-## Hint: 1
-Strings are immutable in JavaScript so we will need a new variable to store the truncated string.
-
-## Hint: 2
-You will need to use slice and specify where to start and where to stop.
-
-## Hint: 3
-Do not forget that when we truncate the word, we also must count the length added by `...`
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-
-```js
-function truncate(str, num) {
-  if (str.length <= num)
-    return str;
-  
-  if (num <= 3)
-    return str.substr(0,num) + "...";
-  
-  return str.substr(0,num-3) + "...";
-}
-```
-
-# Code Explanation:
-First we need an if-statement to test if the length of the full string passed in as the first argument already fits within the size limit passed in as the second argument. If so we can just return the string that was passed in.
-
-```js
-if (str.length <= num)
-  return str;
-```
-
-Then we need to check if the num fits into our special case, where the desired length is less than or equal to three. In this case we will return the string trimmed to our target length, followed by `"..."`. We don't need to worry about the `"..."` being counted against the length of our output string in this case.
-
-```js
-if (num <= 3)
-  return str.substr(0,num) + "...";
-```
-
-Finally, we write the return for what happens when neither of the previous if-statements have been true. This call to `substr()` gives us a string that is 3 less than the target length specified by `num`, which is done so that we have room to add on the `"..."` and fit within that target.
-
-```js
-return str.substr(0,num-3) + "...";
-```
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282 @richyvk @ltegman`
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Explanation:
+We need to reduce the length of the string or **truncate** it if it is longer than the given maximum lengths specified and add `...` to the end. If it is not that long then we keep it as is.
+
+## Hint: 1
+Strings are immutable in JavaScript so we will need a new variable to store the truncated string.
+
+## Hint: 2
+You will need to use slice and specify where to start and where to stop.
+
+## Hint: 3
+Do not forget that when we truncate the word, we also must count the length added by `...`
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+
+```js
+function truncate(str, num) {
+  if (str.length <= num)
+    return str;
+  
+  if (num <= 3)
+    return str.substr(0,num) + "...";
+  
+  return str.substr(0,num-3) + "...";
+}
+```
+
+# Code Explanation:
+First we need an if-statement to test if the length of the full string passed in as the first argument already fits within the size limit passed in as the second argument. If so we can just return the string that was passed in.
+
+```js
+if (str.length <= num)
+  return str;
+```
+
+Then we need to check if the num fits into our special case, where the desired length is less than or equal to three. In this case we will return the string trimmed to our target length, followed by `"..."`. We don't need to worry about the `"..."` being counted against the length of our output string in this case.
+
+```js
+if (num <= 3)
+  return str.substr(0,num) + "...";
+```
+
+Finally, we write the return for what happens when neither of the previous if-statements have been true. This call to `substr()` gives us a string that is 3 less than the target length specified by `num`, which is done so that we have room to add on the `"..."` and fit within that target.
+
+```js
+return str.substr(0,num-3) + "...";
+```
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: `Thanks @Rafase282 @richyvk @ltegman`
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
diff --git a/bot-announce.md b/bot-announce.md
index 296dd6f..b97e8e2 100644
--- a/bot-announce.md
+++ b/bot-announce.md
@@ -1,20 +1,20 @@
-## Announcing CamperBot!
-
-CamperBot is our new AI friend who's going to make the FCC chatrooms more fun.
-He can get info from the wiki, share bonfire hints, and help you get brownie points for helping people!
-
-https://twitter.com/FreeCodeCamp/status/627338604134559744
-
-
-### beta testing
-Currently in beta test in the #HelpBonfires channel. Try it out here:
-https://gitter.im/FreeCodeCamp/HelpBonfires
-
-
-### read about what CamperBot features
-https://github.com/FreeCodeCamp/freecodecamp/wiki/camperbot
-
-
-### talk to the Dev Team
-https://gitter.im/dcsan/gitterbot
-
+## Announcing CamperBot!
+
+CamperBot is our new AI friend who's going to make the FCC chatrooms more fun.
+He can get info from the wiki, share bonfire hints, and help you get brownie points for helping people!
+
+https://twitter.com/FreeCodeCamp/status/627338604134559744
+
+
+### beta testing
+Currently in beta test in the #HelpBonfires channel. Try it out here:
+https://gitter.im/FreeCodeCamp/HelpBonfires
+
+
+### read about what CamperBot features
+https://github.com/FreeCodeCamp/freecodecamp/wiki/camperbot
+
+
+### talk to the Dev Team
+https://gitter.im/dcsan/gitterbot
+
diff --git a/botdemo.md b/botdemo.md
index 51d1fdf..3b0ab33 100644
--- a/botdemo.md
+++ b/botdemo.md
@@ -1,24 +1,24 @@
-We've added a bot to some of the chatrooms. We'll be adding more features over time, but these are the starting features. We'd love to hear what you think!
-The main thing is pulling in content from our [brand new wiki](https://github.com/FreeCodeCamp/freecodecamp/wiki), right into the chat.
-
-- `find js` or `find css` or `find html`  
-show a list of matching items.
-
-- `help js ternary`  
-quick definition/help. click through to see more on the wiki
-
-- `help video`  
-inline video
-
-- `help bobbytables`  
-shows inline images
-
-- `explain triphop`
-you can embed soundcloud tracks
-
-- `topics`  
-  show a list of topics
-
-# Join the CamperBot DevTeam!
-we're looking for some people to join the core dev team to work on new features for the bot.
-ping @dcsan on gitter or leave a message in [gitter.com/camperbot/devteam](https://gitter.im/camperbot/devteam)
+We've added a bot to some of the chatrooms. We'll be adding more features over time, but these are the starting features. We'd love to hear what you think!
+The main thing is pulling in content from our [brand new wiki](https://github.com/FreeCodeCamp/freecodecamp/wiki), right into the chat.
+
+- `find js` or `find css` or `find html`  
+show a list of matching items.
+
+- `help js ternary`  
+quick definition/help. click through to see more on the wiki
+
+- `help video`  
+inline video
+
+- `help bobbytables`  
+shows inline images
+
+- `explain triphop`
+you can embed soundcloud tracks
+
+- `topics`  
+  show a list of topics
+
+# Join the CamperBot DevTeam!
+we're looking for some people to join the core dev team to work on new features for the bot.
+ping @dcsan on gitter or leave a message in [gitter.com/camperbot/devteam](https://gitter.im/camperbot/devteam)
diff --git a/botideas.md b/botideas.md
index 0152f25..0b97397 100644
--- a/botideas.md
+++ b/botideas.md
@@ -1,6 +1,6 @@
-If you have ideas or feature requests for the bot, you can add them to this page.
-Also come hang out in https://gitter.im/camperbot/devteam
-
-- XKCD comic feed  
-show comics inside the feed! 
-from @saintpeter
+If you have ideas or feature requests for the bot, you can add them to this page.
+Also come hang out in https://gitter.im/camperbot/devteam
+
+- XKCD comic feed  
+show comics inside the feed! 
+from @saintpeter
diff --git a/botintro.md b/botintro.md
index 8f4bb21..57fdcea 100644
--- a/botintro.md
+++ b/botintro.md
@@ -1,33 +1,33 @@
-Bot is live in beta on gitter
-
-## https://gitter.im/FreeCodeCamp/HelpBonfires
-
-https://twitter.com/FreeCodeCamp/status/627338604134559744
-
-Hay All! We're working on a new CamperBot for FreeCodeCamp. 
-This will make the chat rooms more fun and useful. 
-It will pull in content from our [brand new wiki](https://github.com/FreeCodeCamp/freecodecamp/wiki/) right into the chat room.
-
-# Basic commands
-We're adding more features all the time. But here are some basics
-
-```
-help
-find TOPIC
-wiki TOPIC
-about @user
-thanks @user
-```
-
-## adding to the wiki
-you can add topics to the main wiki, and these will get updated and pulled into the chat.
-Please add material!
-
-## Beta Testing
-https://gitter.im/dcsan/gitterbot
-
-## Repo
-
-
-http://bot.freecodecamp.com/go?room=camperbot/testing&topic=betatesting
-type `help` to get started with basic commands
+Bot is live in beta on gitter
+
+## https://gitter.im/FreeCodeCamp/HelpBonfires
+
+https://twitter.com/FreeCodeCamp/status/627338604134559744
+
+Hay All! We're working on a new CamperBot for FreeCodeCamp. 
+This will make the chat rooms more fun and useful. 
+It will pull in content from our [brand new wiki](https://github.com/FreeCodeCamp/freecodecamp/wiki/) right into the chat room.
+
+# Basic commands
+We're adding more features all the time. But here are some basics
+
+```
+help
+find TOPIC
+wiki TOPIC
+about @user
+thanks @user
+```
+
+## adding to the wiki
+you can add topics to the main wiki, and these will get updated and pulled into the chat.
+Please add material!
+
+## Beta Testing
+https://gitter.im/dcsan/gitterbot
+
+## Repo
+
+
+http://bot.freecodecamp.com/go?room=camperbot/testing&topic=betatesting
+type `help` to get started with basic commands
diff --git a/botpreso.md b/botpreso.md
index dbb3edf..1b1daaf 100644
--- a/botpreso.md
+++ b/botpreso.md
@@ -1,9 +1,9 @@
-# FCC chatbot **CamperBot**
-Now in development. First release today.
-
-to get started:
-# bot help
-
-To talk with the dev team about new features:
-# [https://gitter.im/camperbot/testing](https://gitter.im/camperbot/testing)
-
+# FCC chatbot **CamperBot**
+Now in development. First release today.
+
+to get started:
+# bot help
+
+To talk with the dev team about new features:
+# [https://gitter.im/camperbot/testing](https://gitter.im/camperbot/testing)
+
diff --git a/camperbot.md b/camperbot.md
index 9c8c6b8..2c39f35 100644
--- a/camperbot.md
+++ b/camperbot.md
@@ -1,66 +1,66 @@
-Hi, I'm **[CamperBot](https://github.com/FreeCodeCamp/freecodecamp/wiki/camperbot)**! I can help you in this chatroom :smile: 
-
-### Basic Commands:
-- ``find TOPIC``  find all entries about topic. ex: `find js`
-- `wiki TOPIC` show contents of topic page
-- `thanks @username`  send brownie points to another user
-- `about @username`   shows info on that user
-- `bonfire BONFIRENAME` info on a bonfire
-
-:speech_balloon: [meet CamperBot in this room!](https://gitter.im/camperbot/testing)
-
-
-## Example Commands
-
-```
-find js   # all JS entries
-wiki muta  # first entry with muta in name
-wiki bobbytables  # showing images
-wiki video  # and video
-rollem    # secret sauce
-bonfire roman   # any bonfire with roman in name
-```
-For playing with CamperBot please use the testing channel:
-[https://gitter.im/camperbot/testing](https://gitter.im/camperbot/testing)
-
-## Help on Bonfires
-Live currently on the HelpBonFires channel on Gitter
-[https://gitter.im/FreeCodeCamp/HelpBonfires](https://gitter.im/FreeCodeCamp/HelpBonfires)
-
-We've added some bonfire specific commands. If you type `bonfire $BONFIRENAME` (where $BONFIRENAME is part of a bonfire name) it will set the chat to be about that bonfire. Then you can use some other bonfire specific commands:
-
-- bf details - more info
-- bf spoiler - show some hints
-
-## More  commands
-- `update`  pulls new wiki edits asap
-- `topics` selected pages from the wiki
-- `rooms`  all rooms the bot is in
-- `archives` show history
-- `music` deprecated, plug DJ no longer exists. 
-- `twitch` show the twitch feed
-
-## Content for the wiki
-Feel free to make new pages, an example entry is here:
-https://github.com/FreeCodeCamp/freecodecamp/wiki/example
-
-## Source Repository
-### [https://github.com/dcsan/gitterbot](https://github.com/dcsan/gitterbot)
-Fork it and have fun!
-
-## Roadmap
-We're looking for ideas for new features to add, and some people to help working on the bot.
-Have a look at Tickets with [help wanted](https://github.com/dcsan/gitterbot/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) on the repo and maybe you can contribute?
-
-In future, we're planning:
-- Bonfire step-by-step tutorials will be available via chat and from the CamperBot
-- realtime tagging and searching of chats by topic
-- a scripting language and natural language processing
-Get involved and let us know what you'd like to see next!
-
-## Developer Chatroom
-- [Join us on our repository chat room](https://gitter.im/dcsan/gitterbot) to discuss new features. Perhaps we can pair up to work on the bot 2.0!
-- [Join this chat room](https://gitter.im/camperbot/testing) to mess around with the CamperBot and try out commands, proofread your edits to wiki content etc.
-
-
+Hi, I'm **[CamperBot](https://github.com/FreeCodeCamp/freecodecamp/wiki/camperbot)**! I can help you in this chatroom :smile: 
+
+### Basic Commands:
+- ``find TOPIC``  find all entries about topic. ex: `find js`
+- `wiki TOPIC` show contents of topic page
+- `thanks @username`  send brownie points to another user
+- `about @username`   shows info on that user
+- `bonfire BONFIRENAME` info on a bonfire
+
+:speech_balloon: [meet CamperBot in this room!](https://gitter.im/camperbot/testing)
+
+
+## Example Commands
+
+```
+find js   # all JS entries
+wiki muta  # first entry with muta in name
+wiki bobbytables  # showing images
+wiki video  # and video
+rollem    # secret sauce
+bonfire roman   # any bonfire with roman in name
+```
+For playing with CamperBot please use the testing channel:
+[https://gitter.im/camperbot/testing](https://gitter.im/camperbot/testing)
+
+## Help on Bonfires
+Live currently on the HelpBonFires channel on Gitter
+[https://gitter.im/FreeCodeCamp/HelpBonfires](https://gitter.im/FreeCodeCamp/HelpBonfires)
+
+We've added some bonfire specific commands. If you type `bonfire $BONFIRENAME` (where $BONFIRENAME is part of a bonfire name) it will set the chat to be about that bonfire. Then you can use some other bonfire specific commands:
+
+- bf details - more info
+- bf spoiler - show some hints
+
+## More  commands
+- `update`  pulls new wiki edits asap
+- `topics` selected pages from the wiki
+- `rooms`  all rooms the bot is in
+- `archives` show history
+- `music` deprecated, plug DJ no longer exists. 
+- `twitch` show the twitch feed
+
+## Content for the wiki
+Feel free to make new pages, an example entry is here:
+https://github.com/FreeCodeCamp/freecodecamp/wiki/example
+
+## Source Repository
+### [https://github.com/dcsan/gitterbot](https://github.com/dcsan/gitterbot)
+Fork it and have fun!
+
+## Roadmap
+We're looking for ideas for new features to add, and some people to help working on the bot.
+Have a look at Tickets with [help wanted](https://github.com/dcsan/gitterbot/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) on the repo and maybe you can contribute?
+
+In future, we're planning:
+- Bonfire step-by-step tutorials will be available via chat and from the CamperBot
+- realtime tagging and searching of chats by topic
+- a scripting language and natural language processing
+Get involved and let us know what you'd like to see next!
+
+## Developer Chatroom
+- [Join us on our repository chat room](https://gitter.im/dcsan/gitterbot) to discuss new features. Perhaps we can pair up to work on the bot 2.0!
+- [Join this chat room](https://gitter.im/camperbot/testing) to mess around with the CamperBot and try out commands, proofread your edits to wiki content etc.
+
+
 ![enjoy](https://avatars1.githubusercontent.com/camperbot?&s=100) Happy Coding!
\ No newline at end of file
diff --git a/chai-assert.md b/chai-assert.md
index 3737503..e9f065a 100644
--- a/chai-assert.md
+++ b/chai-assert.md
@@ -1,13 +1,13 @@
-# assert(expression, message)
-
-- @param{ Mixed }expressionto test for truthiness
-- @param{ String }messageto display on error
-
-Write your own test expressions.
-
-```js
-assert('foo' !== 'bar', 'foo is not bar');
-assert(Array.isArray([]), 'empty arrays are arrays');
-```
-
-details: http://chaijs.com/api/assert/
+# assert(expression, message)
+
+- @param{ Mixed }expressionto test for truthiness
+- @param{ String }messageto display on error
+
+Write your own test expressions.
+
+```js
+assert('foo' !== 'bar', 'foo is not bar');
+assert(Array.isArray([]), 'empty arrays are arrays');
+```
+
+details: http://chaijs.com/api/assert/
diff --git a/chai-cheat.md b/chai-cheat.md
index aa81f34..0bb51ce 100644
--- a/chai-cheat.md
+++ b/chai-cheat.md
@@ -1,126 +1,126 @@
-# Chai.js
-
-### Assert
-
-    assert(val)
-    assert.fail(actual, expected)
-    assert.ok(val) // is truthy
-    assert.equal(actual, expected) // 'compare with =='
-    assert.strictEqual
-    assert.deepEqual
-
-    assert.isTrue
-    assert.isFalse
-
-    assert.isNull
-    assert.isNotNull
-    assert.isUndefined
-    assert.isDefined
-    assert.isFunction
-    assert.isObject
-    assert.isArray
-    assert.isString
-    assert.isNumber
-    assert.isBoolean
-
-    assert.typeOf(/tea/, 'regexp') // Object.prototype.toString()
-    assert.instanceOf(chai, Tea)
-    assert.include([ a,b,c ], a)
-    assert.match(val, /regexp/)
-    assert.property(obj, 'tea') // 'tea' in object
-    assert.deepProperty(obj, 'tea.green')
-    assert.propertyVal(person, 'name', 'John')
-    assert.deepPropertyVal(post, 'author.name', 'John')
-
-    assert.lengthOf(object, 3)
-    assert.throws(function() { ... })
-    assert.throws(function() { ... }, /reference error/)
-    assert.doesNotThrow
-
-    assert.operator(1, '<', 2)
-    assert.closeTo(actual, expected)
-
-### Should: chains
-
-    .to .be .been .is .that .and .have .with .at .of .same
-
-### Should not
-
-    expect(object).not.equal('x')
-
-### Expectations
-
-    expect(object)
-      .equal(expected)
-      .eql
-      .deep.equal(expected) // same as .eql
-      .be.a('string')
-      .include(val)
-
-      .be.ok(val)
-      .be.true
-      .be.false
-
-      .be.null
-      .be.undefined
-      .be.empty
-      .be.arguments
-      .be.function
-      .be.instanceOf
-
-      .gt(5)  # or .above .greaterThan
-      .gte    # or .at.least
-      .lt(5)  # or .below
-
-      .respondTo('bar')
-      .satisfy (n) -> n > 0
-
-      .have.members([2, 3, 4])
-      .have.keys(['foo'])
-      .have.key('foo')
-
-      .exist
-
-    expect(-> ...)
-      .throw /not a function/
-
-### Chai-jQuery
-
-```js
-    global.jQuery = ...;
-    chai.use(require('chai-jquery'));
-
-    expect($body)
-
-      .have.attr('foo')
-      .have.prop('disabled')
-      .have.css('background')
-      .have.css('background-color', '#ffffff')
-      .have.data('foo')
-
-      .have.class('active')
-      .have.id('id')
-
-      .have.html('<em>hi</em>')
-      .have.text('hello')
-      .have.value('2013')
-
-      .be.visible
-      .be.hidden
-
-      .be.checked
-      .be.selected
-
-      .be.enabled
-      .be.disabled
-
-      .be.empty
-      .to.exist
-      .to.contain('text')
-      .to.have('.selector')
-```
-
-
-> [ricostacruz CheatSheets](https://github.com/rstacruz/cheatsheets)
-
-> [Discuss on gitter](https://gitter.im/bothelp/testing)
+# Chai.js
+
+### Assert
+
+    assert(val)
+    assert.fail(actual, expected)
+    assert.ok(val) // is truthy
+    assert.equal(actual, expected) // 'compare with =='
+    assert.strictEqual
+    assert.deepEqual
+
+    assert.isTrue
+    assert.isFalse
+
+    assert.isNull
+    assert.isNotNull
+    assert.isUndefined
+    assert.isDefined
+    assert.isFunction
+    assert.isObject
+    assert.isArray
+    assert.isString
+    assert.isNumber
+    assert.isBoolean
+
+    assert.typeOf(/tea/, 'regexp') // Object.prototype.toString()
+    assert.instanceOf(chai, Tea)
+    assert.include([ a,b,c ], a)
+    assert.match(val, /regexp/)
+    assert.property(obj, 'tea') // 'tea' in object
+    assert.deepProperty(obj, 'tea.green')
+    assert.propertyVal(person, 'name', 'John')
+    assert.deepPropertyVal(post, 'author.name', 'John')
+
+    assert.lengthOf(object, 3)
+    assert.throws(function() { ... })
+    assert.throws(function() { ... }, /reference error/)
+    assert.doesNotThrow
+
+    assert.operator(1, '<', 2)
+    assert.closeTo(actual, expected)
+
+### Should: chains
+
+    .to .be .been .is .that .and .have .with .at .of .same
+
+### Should not
+
+    expect(object).not.equal('x')
+
+### Expectations
+
+    expect(object)
+      .equal(expected)
+      .eql
+      .deep.equal(expected) // same as .eql
+      .be.a('string')
+      .include(val)
+
+      .be.ok(val)
+      .be.true
+      .be.false
+
+      .be.null
+      .be.undefined
+      .be.empty
+      .be.arguments
+      .be.function
+      .be.instanceOf
+
+      .gt(5)  # or .above .greaterThan
+      .gte    # or .at.least
+      .lt(5)  # or .below
+
+      .respondTo('bar')
+      .satisfy (n) -> n > 0
+
+      .have.members([2, 3, 4])
+      .have.keys(['foo'])
+      .have.key('foo')
+
+      .exist
+
+    expect(-> ...)
+      .throw /not a function/
+
+### Chai-jQuery
+
+```js
+    global.jQuery = ...;
+    chai.use(require('chai-jquery'));
+
+    expect($body)
+
+      .have.attr('foo')
+      .have.prop('disabled')
+      .have.css('background')
+      .have.css('background-color', '#ffffff')
+      .have.data('foo')
+
+      .have.class('active')
+      .have.id('id')
+
+      .have.html('<em>hi</em>')
+      .have.text('hello')
+      .have.value('2013')
+
+      .be.visible
+      .be.hidden
+
+      .be.checked
+      .be.selected
+
+      .be.enabled
+      .be.disabled
+
+      .be.empty
+      .to.exist
+      .to.contain('text')
+      .to.have('.selector')
+```
+
+
+> [ricostacruz CheatSheets](https://github.com/rstacruz/cheatsheets)
+
+> [Discuss on gitter](https://gitter.im/bothelp/testing)
diff --git a/chai.md b/chai.md
index 03a4a38..2230b28 100644
--- a/chai.md
+++ b/chai.md
@@ -1,5 +1,5 @@
-# Chai.js
-
-[Chai] (http://chaijs.com/) is a testing framework. More info:
-- `help chai assert`
-- `help chai expectations`
+# Chai.js
+
+[Chai] (http://chaijs.com/) is a testing framework. More info:
+- `help chai assert`
+- `help chai expectations`
diff --git a/code-case.md b/code-case.md
index c52a010..59e9d7e 100644
--- a/code-case.md
+++ b/code-case.md
@@ -1,17 +1,17 @@
-### camelCase
-In programming camelCase formatting for variable names looks like this:
-```js
-var camelCase = "lower-case first word, capitalize each subsequent word";
-```
-
-### PascalCase
-Another form of this case, often refered to as PascalCase or just CamelCase, and differs by having each word in the variable capitalized like so:
-```js
-var PascalCase = "upper-case every word";
-```
-
-###snake_case
-Another popular code case for variable naming called snake case involves sperating each word with underscores in this manner:
-```js
-var snake_case = "lower-case everything, but separate words with underscores";
+### camelCase
+In programming camelCase formatting for variable names looks like this:
+```js
+var camelCase = "lower-case first word, capitalize each subsequent word";
+```
+
+### PascalCase
+Another form of this case, often refered to as PascalCase or just CamelCase, and differs by having each word in the variable capitalized like so:
+```js
+var PascalCase = "upper-case every word";
+```
+
+###snake_case
+Another popular code case for variable naming called snake case involves sperating each word with underscores in this manner:
+```js
+var snake_case = "lower-case everything, but separate words with underscores";
 ```
\ No newline at end of file
diff --git a/code-format.md b/code-format.md
index 9766670..774cc04 100644
--- a/code-format.md
+++ b/code-format.md
@@ -1,40 +1,40 @@
-### Inline code
-This an inline **\`**`<paste code here>`**\`** code formatting with a single backtick(\`) at *start* and *end* around the `code`.
-
-### Code Block
-**\`\`\`** ⇦ Type 3 backticks and then press `[shift + enter ⏎]`
-```text
-<paste your code here>,
-then press [shift + enter ⏎]
-```
-**\`\`\`** ⇦ Type 3 backticks, then press `[enter ⏎]`
-
-![How to Code](http://i.imgur.com/FUMG9BS.png)
-
-See also: ☛ [**How to type Backticks**](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/code-formatting#typing-backticks) | ☯ [Compose Mode](https://gitter.zendesk.com/hc/en-us/articles/201302311-Compose-mode) | ❄ [Gitter Formatting Basics](https://gitter.zendesk.com/hc/en-us/articles/200176682-Markdown-basics)
-
-## Typing Backticks[⤴](http://superuser.com/a/254077/122424)
-### QWERTY and QWERTZ (Key that's been marked with red border)
-
-[![QWERTY][2]][3]
-
-### AZERTY France (<kbd>Alt Gr</kbd> + Key that's been marked with red border)
-
-[![AZERTY][4]][5]
-
-### AZERTY Belgium (<kbd>Alt Gr</kbd> + Key that's been marked with red border)
-
-[![enter image description here][6]][7]
-
-### QWERTY Estonian (Key's that have been marked with red border)
-
-![Estonian Keyboard layout](http://i.imgur.com/Ugcflkk.png)
-
-
-  [1]: http://en.wikipedia.org/wiki/Dead_key
-  [2]: http://i.stack.imgur.com/TOn1U.png
-  [3]: http://i.stack.imgur.com/TOn1U.png
-  [4]: http://i.stack.imgur.com/BTBIE.png
-  [5]: http://i.stack.imgur.com/BTBIE.png
-  [6]: http://i.stack.imgur.com/9o9hM.png
+### Inline code
+This an inline **\`**`<paste code here>`**\`** code formatting with a single backtick(\`) at *start* and *end* around the `code`.
+
+### Code Block
+**\`\`\`** ⇦ Type 3 backticks and then press `[shift + enter ⏎]`
+```text
+<paste your code here>,
+then press [shift + enter ⏎]
+```
+**\`\`\`** ⇦ Type 3 backticks, then press `[enter ⏎]`
+
+![How to Code](http://i.imgur.com/FUMG9BS.png)
+
+See also: ☛ [**How to type Backticks**](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/code-formatting#typing-backticks) | ☯ [Compose Mode](https://gitter.zendesk.com/hc/en-us/articles/201302311-Compose-mode) | ❄ [Gitter Formatting Basics](https://gitter.zendesk.com/hc/en-us/articles/200176682-Markdown-basics)
+
+## Typing Backticks[⤴](http://superuser.com/a/254077/122424)
+### QWERTY and QWERTZ (Key that's been marked with red border)
+
+[![QWERTY][2]][3]
+
+### AZERTY France (<kbd>Alt Gr</kbd> + Key that's been marked with red border)
+
+[![AZERTY][4]][5]
+
+### AZERTY Belgium (<kbd>Alt Gr</kbd> + Key that's been marked with red border)
+
+[![enter image description here][6]][7]
+
+### QWERTY Estonian (Key's that have been marked with red border)
+
+![Estonian Keyboard layout](http://i.imgur.com/Ugcflkk.png)
+
+
+  [1]: http://en.wikipedia.org/wiki/Dead_key
+  [2]: http://i.stack.imgur.com/TOn1U.png
+  [3]: http://i.stack.imgur.com/TOn1U.png
+  [4]: http://i.stack.imgur.com/BTBIE.png
+  [5]: http://i.stack.imgur.com/BTBIE.png
+  [6]: http://i.stack.imgur.com/9o9hM.png
   [7]: http://i.stack.imgur.com/9o9hM.png
\ No newline at end of file
diff --git a/css-selectors.md b/css-selectors.md
index e098abc..17cfb8e 100644
--- a/css-selectors.md
+++ b/css-selectors.md
@@ -1,26 +1,26 @@
-In CSS, selectors are patterns used to select DOM elements.
-
-basic selectors like `a` or `h1`
-```css
-a { color: black; }
-h1 { font-size 24px; }
-```
-
-## cheat list of selectors
-```css
-.name            - all items of class 'name'
-#name            - ID of 'name'
-div#container    - all divs with 
-```
-but you can combine them in other ways like:
-```
-li a             -
-li > a           -
-li + a           -
-```
-
-## this is a stub entry! 
-please read up on this stuff from cheat sheets around the web and edit/complete this document!
-
-[Great Reference at CodeTuts](http://code.tutsplus.com/tutorials/the-30-css-selectors-you-must-memorize--net-16048)
-
+In CSS, selectors are patterns used to select DOM elements.
+
+basic selectors like `a` or `h1`
+```css
+a { color: black; }
+h1 { font-size 24px; }
+```
+
+## cheat list of selectors
+```css
+.name            - all items of class 'name'
+#name            - ID of 'name'
+div#container    - all divs with 
+```
+but you can combine them in other ways like:
+```
+li a             -
+li > a           -
+li + a           -
+```
+
+## this is a stub entry! 
+please read up on this stuff from cheat sheets around the web and edit/complete this document!
+
+[Great Reference at CodeTuts](http://code.tutsplus.com/tutorials/the-30-css-selectors-you-must-memorize--net-16048)
+
diff --git a/css.md b/css.md
index 0a97b94..6eca3a2 100644
--- a/css.md
+++ b/css.md
@@ -1,4 +1,4 @@
-Cascading Style Sheets [(CSS)] (https://developer.mozilla.org/en-US/docs/Web/CSS) is a style sheet language used for describing the look and formatting of a document written in a markup language.
-
-> tags: css, stylesheets
-
+Cascading Style Sheets [(CSS)] (https://developer.mozilla.org/en-US/docs/Web/CSS) is a style sheet language used for describing the look and formatting of a document written in a markup language.
+
+> tags: css, stylesheets
+
diff --git a/dau.md b/dau.md
index ac78fa2..2ae0063 100644
--- a/dau.md
+++ b/dau.md
@@ -1,4 +1,4 @@
-Daily Active Users
-
-often used in web startups as a core [KPI](kpi)
+Daily Active Users
+
+often used in web startups as a core [KPI](kpi)
 see also [MAU](mau).
\ No newline at end of file
diff --git a/debugging.md b/debugging.md
index abc2660..7005dc8 100644
--- a/debugging.md
+++ b/debugging.md
@@ -1,3 +1,3 @@
-> Debugging helps you identify and remove errors from (computer hardware or software).
-
-Use [repl.it](http://repl.it/languages/JavaScript) to help you debug your code.  It shows the console output on the right as well as errors and lets you share your code snippets with other people.
+> Debugging helps you identify and remove errors from (computer hardware or software).
+
+Use [repl.it](http://repl.it/languages/JavaScript) to help you debug your code.  It shows the console output on the right as well as errors and lets you share your code snippets with other people.
diff --git a/demo-trim.md b/demo-trim.md
index f9d7117..d2e99b6 100644
--- a/demo-trim.md
+++ b/demo-trim.md
@@ -1,13 +1,13 @@
-The chatwiki only shows up to the first `h2` heading, marked with two # symbols.
-This is a piece of demo content showing embedded scripts. 
-The first paragraph should display inside the chat.
-The second paragraph won't show in wiki chat, but will show if you click through.
-
-```js
-function test(a, b) {
-  return (a+b);
-}
-```
-
-## second paragraph
-This is the 2nd paragraph of content which is "below the fold" and won't be visible in the chat.
+The chatwiki only shows up to the first `h2` heading, marked with two # symbols.
+This is a piece of demo content showing embedded scripts. 
+The first paragraph should display inside the chat.
+The second paragraph won't show in wiki chat, but will show if you click through.
+
+```js
+function test(a, b) {
+  return (a+b);
+}
+```
+
+## second paragraph
+This is the 2nd paragraph of content which is "below the fold" and won't be visible in the chat.
diff --git a/emoji.md b/emoji.md
index be0632f..fbb3c83 100644
--- a/emoji.md
+++ b/emoji.md
@@ -1,2 +1,2 @@
-Gitter IM and GitHub both support a range of cool emoji (emoticons).
-From `:sunny:` :sunny: to `:poop:` :poop: you can express a range of emotions!
+Gitter IM and GitHub both support a range of cool emoji (emoticons).
+From `:sunny:` :sunny: to `:poop:` :poop: you can express a range of emotions!
diff --git a/example.md b/example.md
index 2bcc9f2..86e02ac 100644
--- a/example.md
+++ b/example.md
@@ -1,24 +1,24 @@
-This is an example wiki entry. Break it up with a `## H2 heading` as content before that will show in the chat, but the [rest is on the wiki](https://github.com/FreeCodeCamp/freecodecamp/wiki/example).
-
-```
-console.log("less is more!");
-```
-
-| ![HappyCamping](https://avatars2.githubusercontent.com/u/13561988?v=3&s=128) | -{ Happy Coding! :+1: } |
-| ------------- |:-------------|
-|      | https://github.com/camperbot|
-
-## anything after this ## heading doesn't show in the chat
-Anything below the first `## Heading` will only be shown in the wiki.
-
-- update
-When you're done editing, type `update`
-
-- For testing your update please use the bot testing channel here:
-https://gitter.im/camperbot/testing
-
-- If you put links [make them full URLs](https://github.com/FreeCodeCamp/freecodecamp/wiki/example) like that.
-
-:star2: :hamster: [emoji look cute! cheat sheet](http://www.emoji-cheat-sheet.com/)
-
-![images](https://s3.amazonaws.com/freecodecamp/landingIcons_connect.svg.gz)
+This is an example wiki entry. Break it up with a `## H2 heading` as content before that will show in the chat, but the [rest is on the wiki](https://github.com/FreeCodeCamp/freecodecamp/wiki/example).
+
+```
+console.log("less is more!");
+```
+
+| ![HappyCamping](https://avatars2.githubusercontent.com/u/13561988?v=3&s=128) | -{ Happy Coding! :+1: } |
+| ------------- |:-------------|
+|      | https://github.com/camperbot|
+
+## anything after this ## heading doesn't show in the chat
+Anything below the first `## Heading` will only be shown in the wiki.
+
+- update
+When you're done editing, type `update`
+
+- For testing your update please use the bot testing channel here:
+https://gitter.im/camperbot/testing
+
+- If you put links [make them full URLs](https://github.com/FreeCodeCamp/freecodecamp/wiki/example) like that.
+
+:star2: :hamster: [emoji look cute! cheat sheet](http://www.emoji-cheat-sheet.com/)
+
+![images](https://s3.amazonaws.com/freecodecamp/landingIcons_connect.svg.gz)
diff --git a/format-@meet999.md b/format-@meet999.md
index 9617f81..dc5bc43 100644
--- a/format-@meet999.md
+++ b/format-@meet999.md
@@ -1,14 +1,14 @@
-function welcomeToBooleans() {
-
-// Only change code below this line.
-
-  return false;
-
-// Only change code above this line.
-}
-
-welcomeToBooleans() {
-  
-  return true
-  ;
-}
+function welcomeToBooleans() {
+
+// Only change code below this line.
+
+  return false;
+
+// Only change code above this line.
+}
+
+welcomeToBooleans() {
+  
+  return true
+  ;
+}
diff --git a/git-merge.md b/git-merge.md
index d379fca..bff0a90 100644
--- a/git-merge.md
+++ b/git-merge.md
@@ -1,72 +1,72 @@
-Let us say that you are working on an application that is similar to reddit, but specifically for code snippets. In such an application, you would likely have a `master` branch which contains all the released features, a `dev` branch which might contain features that have been coded, but not implemented yet. Every developer in the team will create his own branches off the `dev` branch for individual features. The repository structure would look something like this:
-                               
-```
-                                  --- Commit 3 --------- dev branch 
-                                /
- --- Commit 1 ---- Commit 2 ---------------------------- master branch
-```
-
-If you decided to merge the 3rd commit (`Commit 3`) into the `master` branch from the `dev` branch, then it would be as simple as running a `git merge` command because the `dev` branch is *up-to-date* with the `master` branch: all of the commits in the `master` branch exist in the `dev` branch. You can merge the branches by running the follow commands:
-```
-git checkout dev
-git merge master
-```
-The result would be something like this:
-
-```
-                                               --------- dev branch 
-                                             /
- --- Commit 1 ---- Commit 2 ---- Commit 3 -------------- master branch
-```
-
-Now you decide to work on the authentication feature. To work on the authentication feature, you create another branch based on the `dev` branch and decide to call it `auth`. This is what the repo structure looks like:
-
-```
-                                                  ------ auth branch
-                                                /
-                                               --------- dev branch 
-                                             /
- --- Commit 1 ---- Commit 2 ---- Commit 3 -------------- master branch
-```
-
-If you were to commit any changes to the `auth` branch, merging them with the `dev` branch would be trivial because it is up-to-date with the `dev` branch. Now while you were working away on the authentication feature, one of the developers finished coding the syntax-highlighting feature, and decided to merge it with the `dev` branch. The repo looks like this now:
-
-```
-                                                  --- Commit 5 --- auth branch
-                                                /
-                                               --- Commit 4 ------ dev branch 
-                                             /
- --- Commit 1 ---- Commit 2 ---- Commit 3 ------------------------ master branch
-```
-
-You're branch, in git terminology, is now a commit behind the `dev` branch. This means that you cannot simply merge the two branches: you must bring your `auth` branch up-to-date with the `dev` branch. This can be done with `git merge`!
-
-Merging the `auth` branch with the `dev` branch, or the `dev` branch with the `master` branch is straightforward and does what you expect, but merging the other way around has its own idiosyncrasies that are not intuitive at first blush. I can babble about it, or I can show you another great diagram of what would happen if you merged the `dev` branch with the `auth` branch at this moment:
-
-```
-                                                  --- Commit 5 ----------- auth branch
-                                                /               /
-                                               --- Commit 4 -------------- dev branch 
-                                             /
- --- Commit 1 ---- Commit 2 ---- Commit 3 -------------------------------- master branch
-```
-
-See what I did there? Look at the diagram for a second and try to understand what is happening here before you move on. You essentially made another commit to the `auth` branch with the commits in the `dev` branch included. But that's all right, right? After all, at the end of the day I wanted to bring my `auth` branch up-to-date with the `dev` branch, and now it *is* up-to-date? Yep. But let me show you a diagram to explicitly illustrate what the other diagram implies: Your `auth` branch now looks like this:
-
-```
-    --- Commit 5 ------- Commit 4 ------- auth branch
-  /                /
------- Commit 4 --- --------------------- dev branch
-```
-
-See it now? You *copied* the commit over. If you were to merge to the `dev` branch now, it would look something like this:
-
-```
-    --- Commit 5 ------- Commit 4 -------------------------------------- auth branch
-  /                /                  \
-------- Commit 4 ----------------------- Commit 5 ---- Commit 4 -------- dev branch
-```
-
-You merged the same commit twice! This will of course have no repercussions for your code itself, but if you one fine day decide to look at your `git logs`, you will immediately realize how dirty your git history is, with some commits being made over and over. If you wanted to revert to a commit, it would be very difficult to decide which commit to revert to.
-
+Let us say that you are working on an application that is similar to reddit, but specifically for code snippets. In such an application, you would likely have a `master` branch which contains all the released features, a `dev` branch which might contain features that have been coded, but not implemented yet. Every developer in the team will create his own branches off the `dev` branch for individual features. The repository structure would look something like this:
+                               
+```
+                                  --- Commit 3 --------- dev branch 
+                                /
+ --- Commit 1 ---- Commit 2 ---------------------------- master branch
+```
+
+If you decided to merge the 3rd commit (`Commit 3`) into the `master` branch from the `dev` branch, then it would be as simple as running a `git merge` command because the `dev` branch is *up-to-date* with the `master` branch: all of the commits in the `master` branch exist in the `dev` branch. You can merge the branches by running the follow commands:
+```
+git checkout dev
+git merge master
+```
+The result would be something like this:
+
+```
+                                               --------- dev branch 
+                                             /
+ --- Commit 1 ---- Commit 2 ---- Commit 3 -------------- master branch
+```
+
+Now you decide to work on the authentication feature. To work on the authentication feature, you create another branch based on the `dev` branch and decide to call it `auth`. This is what the repo structure looks like:
+
+```
+                                                  ------ auth branch
+                                                /
+                                               --------- dev branch 
+                                             /
+ --- Commit 1 ---- Commit 2 ---- Commit 3 -------------- master branch
+```
+
+If you were to commit any changes to the `auth` branch, merging them with the `dev` branch would be trivial because it is up-to-date with the `dev` branch. Now while you were working away on the authentication feature, one of the developers finished coding the syntax-highlighting feature, and decided to merge it with the `dev` branch. The repo looks like this now:
+
+```
+                                                  --- Commit 5 --- auth branch
+                                                /
+                                               --- Commit 4 ------ dev branch 
+                                             /
+ --- Commit 1 ---- Commit 2 ---- Commit 3 ------------------------ master branch
+```
+
+You're branch, in git terminology, is now a commit behind the `dev` branch. This means that you cannot simply merge the two branches: you must bring your `auth` branch up-to-date with the `dev` branch. This can be done with `git merge`!
+
+Merging the `auth` branch with the `dev` branch, or the `dev` branch with the `master` branch is straightforward and does what you expect, but merging the other way around has its own idiosyncrasies that are not intuitive at first blush. I can babble about it, or I can show you another great diagram of what would happen if you merged the `dev` branch with the `auth` branch at this moment:
+
+```
+                                                  --- Commit 5 ----------- auth branch
+                                                /               /
+                                               --- Commit 4 -------------- dev branch 
+                                             /
+ --- Commit 1 ---- Commit 2 ---- Commit 3 -------------------------------- master branch
+```
+
+See what I did there? Look at the diagram for a second and try to understand what is happening here before you move on. You essentially made another commit to the `auth` branch with the commits in the `dev` branch included. But that's all right, right? After all, at the end of the day I wanted to bring my `auth` branch up-to-date with the `dev` branch, and now it *is* up-to-date? Yep. But let me show you a diagram to explicitly illustrate what the other diagram implies: Your `auth` branch now looks like this:
+
+```
+    --- Commit 5 ------- Commit 4 ------- auth branch
+  /                /
+------ Commit 4 --- --------------------- dev branch
+```
+
+See it now? You *copied* the commit over. If you were to merge to the `dev` branch now, it would look something like this:
+
+```
+    --- Commit 5 ------- Commit 4 -------------------------------------- auth branch
+  /                /                  \
+------- Commit 4 ----------------------- Commit 5 ---- Commit 4 -------- dev branch
+```
+
+You merged the same commit twice! This will of course have no repercussions for your code itself, but if you one fine day decide to look at your `git logs`, you will immediately realize how dirty your git history is, with some commits being made over and over. If you wanted to revert to a commit, it would be very difficult to decide which commit to revert to.
+
 It is preferred that to you use [https://github.com/freecodecamp/freecodecamp/wiki/git-rebase](git-rebase).
\ No newline at end of file
diff --git a/git-rebase.md b/git-rebase.md
index da5a74f..c5445d6 100644
--- a/git-rebase.md
+++ b/git-rebase.md
@@ -1,71 +1,71 @@
-**Were you referred to this page to get your PR accepted? Scroll right [to the bottom](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/git-rebase#git-rebase-at-fcc) then!**
-
-`git rebase` is an extremely useful tool that is all about rewriting git history, though most commonly used to *squash* multiple commits into one. While useful in this scenario, this is not the only function that the `git rebase` command can perform. It in fact proves to be far more useful when used for the intended function that its name suggests: to essentially *rebase* a branch. Let me explain what I mean by that.
-
-Let us say that you have a repository such as this:
-
-```
-                                                  --- Commit 5 ----------- auth branch
-                                                /               
-                                               --- Commit 4 -------------- dev branch 
-                                             /
- --- Commit 1 ---- Commit 2 ---- Commit 3 -------------------------------- master branch
-```
-
-If you wanted to merge the `auth` branch with the `dev` branch, git will throw an error at you because your `auth` branch is out-of-date: it doesn't account for Commit 4. You'll have to bring your branch up-to-date.
-
-Git provides you with two methods to do this: the `merge` command and the `rebase` command. For an exploration of the `merge` command, visit the relevant wiki article: https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/git-merge
-
-Let's run `rebase` now:
-```
-git checkout auth
-git rebase dev
-```
-
-The repo will now look like this:
-
-```
-                                                                 --- Commit 5 --- auth branch
-                                                               /
-                                               --- Commit 4 --------------------- dev branch 
-                                             /
- --- Commit 1 ---- Commit 2 ---- Commit 3 --------------------------------------- master branch
-```
-
-Do you see what happened? Git essentially saved the commits in the `auth` branch, 'removed' it, and then created it again with the same commits *after* the commits in the `dev` branch. This means that `Commit 4` only exists in the `dev` branch and not the `auth` branch! And that is really all there is to it! This might seem a bit confusing at first, but try to understand the diagram. This is an extremely useful tool.
-
-
-## git-rebase at FCC
-
-### Preventing merge conflicts
-If you contribute to the FCC codebase, or are planning to do it, always run this command before you make any changes in your local files and push them:
-
-`git pull --rebase upstream staging` (thanks, @SaintPeter)
-
-If you don't have `upstream` set up, then run this command before you run the above command (git will throw an error because it doesn't know what upstream is):
-`git remote add upstream https://github.com/freecodecamp/freecodecamp.git`
-
-This will pull the latest changes from the FCC staging branch and rebase them with your fork's staging branch so that you will not have any conflicts when opening the PR :)
-
-### Squashing multiple commits into one
-
-This is an awesome feature of `rebase` that can be used in the `interactive` mode. To squash the last *n* commits into one, run the following command:
-
-```
-git rebase -i HEAD~n
-```
-
-That will open up a text-editor with something similar to the following:
-```
-pick commit_1
-pick commit_2
-pick commit_3
-...
-pick commit_n
-# Bunch of comments
-```
-
-Leave the first commit alone, and change the rest of the `pick`s to `squash`. Save and exit the editor.
-
-If you've already pushed to a remote before squashing your commits, you'll have to push to the remote again, with the `-f` flag, otherwise git will throw an error at you.
+**Were you referred to this page to get your PR accepted? Scroll right [to the bottom](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/git-rebase#git-rebase-at-fcc) then!**
+
+`git rebase` is an extremely useful tool that is all about rewriting git history, though most commonly used to *squash* multiple commits into one. While useful in this scenario, this is not the only function that the `git rebase` command can perform. It in fact proves to be far more useful when used for the intended function that its name suggests: to essentially *rebase* a branch. Let me explain what I mean by that.
+
+Let us say that you have a repository such as this:
+
+```
+                                                  --- Commit 5 ----------- auth branch
+                                                /               
+                                               --- Commit 4 -------------- dev branch 
+                                             /
+ --- Commit 1 ---- Commit 2 ---- Commit 3 -------------------------------- master branch
+```
+
+If you wanted to merge the `auth` branch with the `dev` branch, git will throw an error at you because your `auth` branch is out-of-date: it doesn't account for Commit 4. You'll have to bring your branch up-to-date.
+
+Git provides you with two methods to do this: the `merge` command and the `rebase` command. For an exploration of the `merge` command, visit the relevant wiki article: https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/git-merge
+
+Let's run `rebase` now:
+```
+git checkout auth
+git rebase dev
+```
+
+The repo will now look like this:
+
+```
+                                                                 --- Commit 5 --- auth branch
+                                                               /
+                                               --- Commit 4 --------------------- dev branch 
+                                             /
+ --- Commit 1 ---- Commit 2 ---- Commit 3 --------------------------------------- master branch
+```
+
+Do you see what happened? Git essentially saved the commits in the `auth` branch, 'removed' it, and then created it again with the same commits *after* the commits in the `dev` branch. This means that `Commit 4` only exists in the `dev` branch and not the `auth` branch! And that is really all there is to it! This might seem a bit confusing at first, but try to understand the diagram. This is an extremely useful tool.
+
+
+## git-rebase at FCC
+
+### Preventing merge conflicts
+If you contribute to the FCC codebase, or are planning to do it, always run this command before you make any changes in your local files and push them:
+
+`git pull --rebase upstream staging` (thanks, @SaintPeter)
+
+If you don't have `upstream` set up, then run this command before you run the above command (git will throw an error because it doesn't know what upstream is):
+`git remote add upstream https://github.com/freecodecamp/freecodecamp.git`
+
+This will pull the latest changes from the FCC staging branch and rebase them with your fork's staging branch so that you will not have any conflicts when opening the PR :)
+
+### Squashing multiple commits into one
+
+This is an awesome feature of `rebase` that can be used in the `interactive` mode. To squash the last *n* commits into one, run the following command:
+
+```
+git rebase -i HEAD~n
+```
+
+That will open up a text-editor with something similar to the following:
+```
+pick commit_1
+pick commit_2
+pick commit_3
+...
+pick commit_n
+# Bunch of comments
+```
+
+Leave the first commit alone, and change the rest of the `pick`s to `squash`. Save and exit the editor.
+
+If you've already pushed to a remote before squashing your commits, you'll have to push to the remote again, with the `-f` flag, otherwise git will throw an error at you.
 Happy coding!
\ No newline at end of file
diff --git a/global-variables.md b/global-variables.md
index 5351804..61178a7 100644
--- a/global-variables.md
+++ b/global-variables.md
@@ -1,5 +1,5 @@
-you should ALWAYS use **var** to declare your variables (to make locally) else it will install GLOBALLY
-
-http://www.w3.org/wiki/JavaScript_best_practices#Avoid_globals
-
+you should ALWAYS use **var** to declare your variables (to make locally) else it will install GLOBALLY
+
+http://www.w3.org/wiki/JavaScript_best_practices#Avoid_globals
+
 http://c2.com/cgi/wiki?GlobalVariablesAreBad
\ No newline at end of file
diff --git a/good-code.md b/good-code.md
index b0b8504..871859f 100644
--- a/good-code.md
+++ b/good-code.md
@@ -1,30 +1,30 @@
-`/* C'est la premiere fois que j'utilise l'argument object. quel drole de machin.Dans une prochaine etape j'essaierai de trouver comment reussir avec un filtre. */
-
-
-
-
-
-function strainer(arra, liste) {
-    for (i = arra.length; i >= 0; i --){
-        var item = arra[i];
-        for (j = liste.length - 1; j >= 0; j --) {
-            var  elemt = liste[j];
-            if (item == elemt) {
-                 arra.splice(i, 1);
-            }
-        }
-   }
-  return arra;
-}
-function destroyer(arr) {
-  var elenco = Array.prototype.slice.call(arguments);
-
-  liste = elenco.slice(1, elenco.length);
-
-
-  // Remove all the values
- return strainer(arr, liste); 
-}
-destroyer([1, 2, 3, 1, 2, 3], 2, 3, "");
-
+`/* C'est la premiere fois que j'utilise l'argument object. quel drole de machin.Dans une prochaine etape j'essaierai de trouver comment reussir avec un filtre. */
+
+
+
+
+
+function strainer(arra, liste) {
+    for (i = arra.length; i >= 0; i --){
+        var item = arra[i];
+        for (j = liste.length - 1; j >= 0; j --) {
+            var  elemt = liste[j];
+            if (item == elemt) {
+                 arra.splice(i, 1);
+            }
+        }
+   }
+  return arra;
+}
+function destroyer(arr) {
+  var elenco = Array.prototype.slice.call(arguments);
+
+  liste = elenco.slice(1, elenco.length);
+
+
+  // Remove all the values
+ return strainer(arr, liste); 
+}
+destroyer([1, 2, 3, 1, 2, 3], 2, 3, "");
+
 `
\ No newline at end of file
diff --git a/how-to-post-code.md b/how-to-post-code.md
index afe0837..db19dd6 100644
--- a/how-to-post-code.md
+++ b/how-to-post-code.md
@@ -1,3 +1,3 @@
-use backticks `
-
-![posting](https://dl.dropboxusercontent.com/u/48751994/code.png)
+use backticks `
+
+![posting](https://dl.dropboxusercontent.com/u/48751994/code.png)
diff --git a/html-elements.md b/html-elements.md
index ad57553..f120d6a 100644
--- a/html-elements.md
+++ b/html-elements.md
@@ -1,7 +1,7 @@
-Most HTML elements have an opening tag and a closing tag. Opening tags look like this: `<h1>`. 
-
-Closing tags look like this: `</h1>`. 
-
-Note that the only difference between opening and closing tags is that closing tags have a slash after their opening angle bracket.
-
+Most HTML elements have an opening tag and a closing tag. Opening tags look like this: `<h1>`. 
+
+Closing tags look like this: `</h1>`. 
+
+Note that the only difference between opening and closing tags is that closing tags have a slash after their opening angle bracket.
+
 Try it here! http://www.freecodecamp.com/challenges/waypoint-say-hello-to-html-elements
\ No newline at end of file
diff --git a/isLoggedInAsync().md b/isLoggedInAsync().md
index ac046e2..69e2627 100644
--- a/isLoggedInAsync().md
+++ b/isLoggedInAsync().md
@@ -1,17 +1,17 @@
-Let's say you have a public page, but if the user is logged in you want to show special information to them. You'll need to detect if a user is logged in before you make an *$http* call, right? It’s not guaranteed that this will work, because *isLoggedIn()* is actually an async call. If you want to force something to wait until after *isLoggedIn()* is successful before it gets called, you should include *Auth.isLoggedInAsync*:
-
-~~~javascript
-$scope.isLoggedInAsync = Auth.isLoggedInAsync;
-~~~	
-
-*isLoggedInAsync* takes a callback function as an input, and passes the callback function a *true* boolean if the user is logged in, and a *false* if the user is not. You can call it like so: 
-
-~~~javascript
-$scope.isLoggedInAsync(callback(bool) {
-	if (bool) { /** do thing if they’re logged in **/ } 
-	else { /** do different thing if they’re not logged in **/ }
-});
-~~~
-
-[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Restrict-a-page-to-authenticated-users)
+Let's say you have a public page, but if the user is logged in you want to show special information to them. You'll need to detect if a user is logged in before you make an *$http* call, right? It’s not guaranteed that this will work, because *isLoggedIn()* is actually an async call. If you want to force something to wait until after *isLoggedIn()* is successful before it gets called, you should include *Auth.isLoggedInAsync*:
+
+~~~javascript
+$scope.isLoggedInAsync = Auth.isLoggedInAsync;
+~~~	
+
+*isLoggedInAsync* takes a callback function as an input, and passes the callback function a *true* boolean if the user is logged in, and a *false* if the user is not. You can call it like so: 
+
+~~~javascript
+$scope.isLoggedInAsync(callback(bool) {
+	if (bool) { /** do thing if they’re logged in **/ } 
+	else { /** do different thing if they’re not logged in **/ }
+});
+~~~
+
+[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Restrict-a-page-to-authenticated-users)
 [NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonus:-SocketIO)
\ No newline at end of file
diff --git a/jQuery.md b/jQuery.md
index a4ed59b..059754a 100644
--- a/jQuery.md
+++ b/jQuery.md
@@ -1,8 +1,8 @@
-It's the most used library in JavaScript. Is used to handle events, create animations, etc. to create dynamic web applications and pages. 
-- `$()` -> tells js we'll be using jQuery. 
-- `document` tells jQuery to work with our HTML
-- `.ready` -> makes the jQuery wait untill the page is completely loaded.
-
-## Keep adding 
-placeholder! work in progress!
+It's the most used library in JavaScript. Is used to handle events, create animations, etc. to create dynamic web applications and pages. 
+- `$()` -> tells js we'll be using jQuery. 
+- `document` tells jQuery to work with our HTML
+- `.ready` -> makes the jQuery wait untill the page is completely loaded.
+
+## Keep adding 
+placeholder! work in progress!
 please add key notes here, these won't show up in chat.
\ No newline at end of file
diff --git a/js-Array-prototype-filter.md b/js-Array-prototype-filter.md
index f255085..d54713d 100644
--- a/js-Array-prototype-filter.md
+++ b/js-Array-prototype-filter.md
@@ -1,59 +1,59 @@
-# Array.prototype.filter()
-
-The `filter()` method creates a new array with all elements that pass the test implemented by the provided function
-
-```js
-arr.filter(callback[, thisArg])
-```
-
-## parameters
-
-|          | Parameter                           |
-|----------|-------------------------------------|
-| Required | Arr                                 |
-| Required | callback (function with max 3 args) |
-| Optional | thisArg                             |
-
-**Return:** A new array that contains all the values for which the callback function returns true. If the callback function returns false for all elements of array1, the length of the new array is 0.
-
-[MDN link](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) | [MSDN link](https://msdn.microsoft.com/library/ff679973%28v=vs.94%29.aspx?f=255&MSPPError=-2147217396)
-
-## Examples
-```js
-// Define a callback function.
-function CheckIfPrime(value, index, ar) {
-    high = Math.floor(Math.sqrt(value)) + 1;
-    
-    for (var div = 2; div <= high; div++) {
-        if (value % div == 0) {
-            return false;
-        }
-    } 
-    return true;
-}
-
-// Create the original array.
-var numbers = [31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53];
-
-// Get the prime numbers that are in the original array. 
-var primes = numbers.filter(CheckIfPrime);
-
-document.write(primes);
-// Output: 31,37,41,43,47,53
-```
-
-```js
-// Create the original array.
-var arr = [5, "element", 10, "the", true];
-
-// Create an array that contains the string
-// values that are in the original array.
-var result = arr.filter(
-    function (value) {
-        return (typeof value === 'string');
-    }
-);
-
-document.write(result);
-// Output: element, the
+# Array.prototype.filter()
+
+The `filter()` method creates a new array with all elements that pass the test implemented by the provided function
+
+```js
+arr.filter(callback[, thisArg])
+```
+
+## parameters
+
+|          | Parameter                           |
+|----------|-------------------------------------|
+| Required | Arr                                 |
+| Required | callback (function with max 3 args) |
+| Optional | thisArg                             |
+
+**Return:** A new array that contains all the values for which the callback function returns true. If the callback function returns false for all elements of array1, the length of the new array is 0.
+
+[MDN link](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) | [MSDN link](https://msdn.microsoft.com/library/ff679973%28v=vs.94%29.aspx?f=255&MSPPError=-2147217396)
+
+## Examples
+```js
+// Define a callback function.
+function CheckIfPrime(value, index, ar) {
+    high = Math.floor(Math.sqrt(value)) + 1;
+    
+    for (var div = 2; div <= high; div++) {
+        if (value % div == 0) {
+            return false;
+        }
+    } 
+    return true;
+}
+
+// Create the original array.
+var numbers = [31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53];
+
+// Get the prime numbers that are in the original array. 
+var primes = numbers.filter(CheckIfPrime);
+
+document.write(primes);
+// Output: 31,37,41,43,47,53
+```
+
+```js
+// Create the original array.
+var arr = [5, "element", 10, "the", true];
+
+// Create an array that contains the string
+// values that are in the original array.
+var result = arr.filter(
+    function (value) {
+        return (typeof value === 'string');
+    }
+);
+
+document.write(result);
+// Output: element, the
 ```
\ No newline at end of file
diff --git a/js-Array-prototype-indexOf.md b/js-Array-prototype-indexOf.md
index ffaea78..41ec9eb 100644
--- a/js-Array-prototype-indexOf.md
+++ b/js-Array-prototype-indexOf.md
@@ -1,42 +1,42 @@
-# Array.prototype.indexOf()
-
-The `indexOf()` method returns the first index at which a given element can be found in the array, or -1 if it is not present.
-
-```js
-arr.indexOf(searchElement[, fromIndex = 0])
-```
-
-## Parameters
-
-|          | Parameter                           |
-|----------|-------------------------------------|
-| Required | Arr                                 |
-| Required | searchElement |
-| Optional | fromIndex                             |
-
-**Return:** -1 if the element is not found in the array or an integer >=0, the position of the element in the array
-
-[MDN link](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)
-
-## Examples
-**Use Case:** Check to see if there are any apples in the fruit basket (defined as an array)?
-```js
-var basket = ['apple','orange','banana','strawberry'];
-```
-**Without** indexOf()
-```js
-var found = false;
-for(var i= 0, l = basket.length; i< l; i++){
-	if(basket[i] === 'apple'){
-		found = true;
-                break;
-	}
-}
-console.log(found);
-```
-**With** indexOf()
-```js
-console.log(basket.indexOf("apple") != -1);
-```
-
+# Array.prototype.indexOf()
+
+The `indexOf()` method returns the first index at which a given element can be found in the array, or -1 if it is not present.
+
+```js
+arr.indexOf(searchElement[, fromIndex = 0])
+```
+
+## Parameters
+
+|          | Parameter                           |
+|----------|-------------------------------------|
+| Required | Arr                                 |
+| Required | searchElement |
+| Optional | fromIndex                             |
+
+**Return:** -1 if the element is not found in the array or an integer >=0, the position of the element in the array
+
+[MDN link](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)
+
+## Examples
+**Use Case:** Check to see if there are any apples in the fruit basket (defined as an array)?
+```js
+var basket = ['apple','orange','banana','strawberry'];
+```
+**Without** indexOf()
+```js
+var found = false;
+for(var i= 0, l = basket.length; i< l; i++){
+	if(basket[i] === 'apple'){
+		found = true;
+                break;
+	}
+}
+console.log(found);
+```
+**With** indexOf()
+```js
+console.log(basket.indexOf("apple") != -1);
+```
+
 tags: js, array
\ No newline at end of file
diff --git a/js-Array-prototype-map.md b/js-Array-prototype-map.md
index 9e335d8..617a147 100644
--- a/js-Array-prototype-map.md
+++ b/js-Array-prototype-map.md
@@ -1,65 +1,65 @@
-# Array.prototype.map()
-
-The method `map` of the Array prototype allows you to grab a hold of each element inside an array and apply a function to them. After **map** finishes iterating through the array, it will return a **new array** with the results of applying the function to the aforementioned elements.
-
-#### The syntax is as follows:
-`myAwesomeArray.map(myAwesomeFunction)`
-
-Since **map** doesn't mutate the original array, it should be used as a value, stored inside a variable, passed in as a **returned value** inside a function (the most common case) and many other things.
-Let's learn a little bit of what this powerful function can do! Say we have an array of  names and we want to create a new array with these names but UPPERCASED.
-
-``` javascript
-var names = ["Leia", "Anakin", "Luke", "Obi Wan Kenobi"];
-var uppercaseNames = names.map(function(name) {
-  return name.toUpperCase();
-};
-```
-Now if we `console.log(uppercaseNames)` we will get this:
-> `Array(4) -> ["LEIA", "ANAKIN", "LUKE", "OBI WAN KENOBI"]`
-
-But how does it work? Let's dive more into it.
-
-## Let's talk about the callback parameters
-The callback is the function that the Array.map() method accepts, it can be an anonymous function or an already declared function with the following parameters which, by the way, you can name as you please:
-
-1- **currentValue**: As the name suggest, it's the current element of the array being evaluated and waiting for your function to replace it with a new value in the new array (same index of course).
-
-2- **index**: It equals to the numeric index of currentValue, say you are in "Anakin", that means index, at the time, will equal to **1**.
-
-3- **array**: The array that's calling the method, in this case, it's referring to **names**.
-
-Examples work better than loose explanations, now we can make our callback function turn `["Leia", "Anakin", "Luke", "Obi Wan Kenobi"]` into `["My name is Leia, I'm #1", "My name is Anakin, I'm #2", "My name is Luke, I'm #3", "And last but not less important, I'm #4 Obi Wan Kenobi"]`. Sounds interesting and complex huh? It's actually not if you put the first two parameters to use.
-
-``` javascript
-var jediMasters = ["Leia", "Anakin", "Luke", "Obi Wan Kenobi"];
-var jediMastersSayHi = jediMasters.map(function(jediName, jediIndex) {
-  if (jediName === "Obi Wan Kenobi") {
-    return "And last but not less important, I'm #" + (jediIndex + 1) + " " + jediName;
-  } else {
-    return "My name is " + jediName + ", I'm #" + (jediIndex + 1);
-  }
-}); // We're done mapping, now console.log the whole thing.
-```
-
-If we now console out the values of the two arrays, we get this:
-
-![Map in action](https://www.evernote.com/shard/s539/sh/75d6da94-dd29-4dd6-98b7-9ee7260533ca/21e0ed3c9e391b9507128a42d2b12421/res/77e93999-b27c-46c5-b101-f9ed32d7aee0/skitch.png)
-
-If you are asking why one of the values in the string concatenation is `(jediIndex + 1)`, that's because **indices are 0-based**, we would get 0, 1, 2 and 3 for our Jedi's and that's not cool. Check that IF statement just sitting there, what does it do? Simple, it checks if the current Jedi is Obi Wan, if it is, then the new value of that element of the array (the new one) should be different from the rest.
-
-It's important to note that **we can write the function outside the map method** and call it with the name's function. Let's one more time re-write our code and see how we can achieve this (I think it's cleaner):
-
-``` javascript
-function sayHi(jedi, index) {
-  if (jedi === "Obi Wan Kenobi") {
-    return "And last but not less important, I'm #" + (index + 1) + " " + jedi;
-  } else {
-    return "My name is " + jedi + ", I'm #" + (index + 1);
-  }
-}
-
-var jediMasters = ["Leia", "Anakin", "Luke", "Obi Wan Kenobi"];
-var jediMastersSayHi = jediMasters.map(sayHi); // We're done mapping, now console.log the whole thing.
-```
-
+# Array.prototype.map()
+
+The method `map` of the Array prototype allows you to grab a hold of each element inside an array and apply a function to them. After **map** finishes iterating through the array, it will return a **new array** with the results of applying the function to the aforementioned elements.
+
+#### The syntax is as follows:
+`myAwesomeArray.map(myAwesomeFunction)`
+
+Since **map** doesn't mutate the original array, it should be used as a value, stored inside a variable, passed in as a **returned value** inside a function (the most common case) and many other things.
+Let's learn a little bit of what this powerful function can do! Say we have an array of  names and we want to create a new array with these names but UPPERCASED.
+
+``` javascript
+var names = ["Leia", "Anakin", "Luke", "Obi Wan Kenobi"];
+var uppercaseNames = names.map(function(name) {
+  return name.toUpperCase();
+};
+```
+Now if we `console.log(uppercaseNames)` we will get this:
+> `Array(4) -> ["LEIA", "ANAKIN", "LUKE", "OBI WAN KENOBI"]`
+
+But how does it work? Let's dive more into it.
+
+## Let's talk about the callback parameters
+The callback is the function that the Array.map() method accepts, it can be an anonymous function or an already declared function with the following parameters which, by the way, you can name as you please:
+
+1- **currentValue**: As the name suggest, it's the current element of the array being evaluated and waiting for your function to replace it with a new value in the new array (same index of course).
+
+2- **index**: It equals to the numeric index of currentValue, say you are in "Anakin", that means index, at the time, will equal to **1**.
+
+3- **array**: The array that's calling the method, in this case, it's referring to **names**.
+
+Examples work better than loose explanations, now we can make our callback function turn `["Leia", "Anakin", "Luke", "Obi Wan Kenobi"]` into `["My name is Leia, I'm #1", "My name is Anakin, I'm #2", "My name is Luke, I'm #3", "And last but not less important, I'm #4 Obi Wan Kenobi"]`. Sounds interesting and complex huh? It's actually not if you put the first two parameters to use.
+
+``` javascript
+var jediMasters = ["Leia", "Anakin", "Luke", "Obi Wan Kenobi"];
+var jediMastersSayHi = jediMasters.map(function(jediName, jediIndex) {
+  if (jediName === "Obi Wan Kenobi") {
+    return "And last but not less important, I'm #" + (jediIndex + 1) + " " + jediName;
+  } else {
+    return "My name is " + jediName + ", I'm #" + (jediIndex + 1);
+  }
+}); // We're done mapping, now console.log the whole thing.
+```
+
+If we now console out the values of the two arrays, we get this:
+
+![Map in action](https://www.evernote.com/shard/s539/sh/75d6da94-dd29-4dd6-98b7-9ee7260533ca/21e0ed3c9e391b9507128a42d2b12421/res/77e93999-b27c-46c5-b101-f9ed32d7aee0/skitch.png)
+
+If you are asking why one of the values in the string concatenation is `(jediIndex + 1)`, that's because **indices are 0-based**, we would get 0, 1, 2 and 3 for our Jedi's and that's not cool. Check that IF statement just sitting there, what does it do? Simple, it checks if the current Jedi is Obi Wan, if it is, then the new value of that element of the array (the new one) should be different from the rest.
+
+It's important to note that **we can write the function outside the map method** and call it with the name's function. Let's one more time re-write our code and see how we can achieve this (I think it's cleaner):
+
+``` javascript
+function sayHi(jedi, index) {
+  if (jedi === "Obi Wan Kenobi") {
+    return "And last but not less important, I'm #" + (index + 1) + " " + jedi;
+  } else {
+    return "My name is " + jedi + ", I'm #" + (index + 1);
+  }
+}
+
+var jediMasters = ["Leia", "Anakin", "Luke", "Obi Wan Kenobi"];
+var jediMastersSayHi = jediMasters.map(sayHi); // We're done mapping, now console.log the whole thing.
+```
+
 We can use map in strings and other types of objects if we use `Array.prototype.call(objectToBeMapped, callbackFunction)`, for more examples, go look other sites and practise it.
\ No newline at end of file
diff --git a/js-Array-prototype-pop.md b/js-Array-prototype-pop.md
index a9696d6..3a75122 100644
--- a/js-Array-prototype-pop.md
+++ b/js-Array-prototype-pop.md
@@ -1,37 +1,37 @@
-# Array.prototype.pop()
-
-The JavaScript array method `.pop()` will remove the last element from an array and returns that element.
-
-**Syntax**
-```js
-var array = [1, 2, 3, 4, 5];
-array.pop();
-```
-
-## Description 
-
-`.pop()` 'pops' the last element in an array off and returns that element
-
-`.pop()` will return `undefined` if the array it is called on is empty.
-
-
-## Examples
-
-**Popping off the last value in an array**
-```js
-var array = [1, 2, 3, 4, 5];
-console.log(array);
-// Console will output 1, 2, 3, 4, 5
-
-array.pop();
-/* If we console.log(array.pop()); the console would output 5
-because 5 was popped off the array by .pop(). */
-
-console.log(array);
-/* Console will output 1, 2, 3, 4 and 
-the variable array now contains the set [1, 2, 3, 4] */
-
-```
-
-
+# Array.prototype.pop()
+
+The JavaScript array method `.pop()` will remove the last element from an array and returns that element.
+
+**Syntax**
+```js
+var array = [1, 2, 3, 4, 5];
+array.pop();
+```
+
+## Description 
+
+`.pop()` 'pops' the last element in an array off and returns that element
+
+`.pop()` will return `undefined` if the array it is called on is empty.
+
+
+## Examples
+
+**Popping off the last value in an array**
+```js
+var array = [1, 2, 3, 4, 5];
+console.log(array);
+// Console will output 1, 2, 3, 4, 5
+
+array.pop();
+/* If we console.log(array.pop()); the console would output 5
+because 5 was popped off the array by .pop(). */
+
+console.log(array);
+/* Console will output 1, 2, 3, 4 and 
+the variable array now contains the set [1, 2, 3, 4] */
+
+```
+
+
 Source [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop)
\ No newline at end of file
diff --git a/js-Array-prototype-push.md b/js-Array-prototype-push.md
index 94495ba..1ff4f18 100644
--- a/js-Array-prototype-push.md
+++ b/js-Array-prototype-push.md
@@ -1,37 +1,37 @@
-# Array.prototype.push()
-
-The JavaScript array method `.push()` adds one or more new elements to the end of an array and returns the length of the newly expanded array.
-
-**Syntax**
-```js
-var array = [1, 2, 3, 4, 5];
-array.push(6);
-```
-### Parameters
-`.push` accepts one or multiple parameters.
-
-### Returns
-The length of the array is returned by `.push()`
-
-## Description 
-
-`.push()` 'pushes' new values onto the end (the right side) of an array.
-
-
-## Examples
-
-**Pushing a new element into an array**
-```js
-var array = [1, 2, 3, 4, 5];
-var totalArrayElements = array.push(6);
-
-console.log(array);
-// Console will output 1, 2, 3, 4, 5, 6
-
-console.log(totalArrayElements);
-// Console will output 6
-
-```
-
-
+# Array.prototype.push()
+
+The JavaScript array method `.push()` adds one or more new elements to the end of an array and returns the length of the newly expanded array.
+
+**Syntax**
+```js
+var array = [1, 2, 3, 4, 5];
+array.push(6);
+```
+### Parameters
+`.push` accepts one or multiple parameters.
+
+### Returns
+The length of the array is returned by `.push()`
+
+## Description 
+
+`.push()` 'pushes' new values onto the end (the right side) of an array.
+
+
+## Examples
+
+**Pushing a new element into an array**
+```js
+var array = [1, 2, 3, 4, 5];
+var totalArrayElements = array.push(6);
+
+console.log(array);
+// Console will output 1, 2, 3, 4, 5, 6
+
+console.log(totalArrayElements);
+// Console will output 6
+
+```
+
+
 Source [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push)
\ No newline at end of file
diff --git a/js-Array-prototype-shift.md b/js-Array-prototype-shift.md
index 13d7b12..d4bf914 100644
--- a/js-Array-prototype-shift.md
+++ b/js-Array-prototype-shift.md
@@ -1,37 +1,37 @@
-# Array.prototype.shift()
-
-The JavaScript array method `.shift()` will remove the first element from an array and return that value. This will also change the length of the array
-
-**Syntax**
-```js
-var array = [1, 2, 3, 4];
-array.shift();
-```
-
-## Description 
-
-`.shift()` will remove the element at index 0 of the array upon which it is called. It then returns the removed value and shifts all remaining elements down by 1 index value.
-
-`.shift()` will return `undefined` if the array it is called on contains no elements.
-
-
-## Examples
-
-**Shifting the first value from an array**
-```js
-var array = [1, 2, 3, 4, 5];
-console.log(array);
-// Console will output 1, 2, 3, 4, 5
-
-array.shift();
-// If we console.log(array.shift()); the console would output 1.
-
-console.log(array);
-/* Console will output 2, 3, 4, 5 and 
-the variable array now contains the set [2, 3, 4, 5] where 
-each element has been moved down 1 index value. */
-
-```
-
-
+# Array.prototype.shift()
+
+The JavaScript array method `.shift()` will remove the first element from an array and return that value. This will also change the length of the array
+
+**Syntax**
+```js
+var array = [1, 2, 3, 4];
+array.shift();
+```
+
+## Description 
+
+`.shift()` will remove the element at index 0 of the array upon which it is called. It then returns the removed value and shifts all remaining elements down by 1 index value.
+
+`.shift()` will return `undefined` if the array it is called on contains no elements.
+
+
+## Examples
+
+**Shifting the first value from an array**
+```js
+var array = [1, 2, 3, 4, 5];
+console.log(array);
+// Console will output 1, 2, 3, 4, 5
+
+array.shift();
+// If we console.log(array.shift()); the console would output 1.
+
+console.log(array);
+/* Console will output 2, 3, 4, 5 and 
+the variable array now contains the set [2, 3, 4, 5] where 
+each element has been moved down 1 index value. */
+
+```
+
+
 Source [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift)
\ No newline at end of file
diff --git a/js-Array-prototype-slice.md b/js-Array-prototype-slice.md
index fe9901f..7ffe86b 100644
--- a/js-Array-prototype-slice.md
+++ b/js-Array-prototype-slice.md
@@ -1,39 +1,39 @@
-# Array.prototype.slice()
-
-> The `slice()` method returns a shallow copy of a portion of an array into a new array object.
-
-```js
-arr.slice([begin[, end]])
-```
-
-| Necessity | Parameter | Description                                                          |
-|-------------------|-----------|----------------------------------------------------------------------|
-| Required          | arr  | An Array object. |
-| Required          | begin    | The beginning of the specified portion of array.                     |
-| Optional          | end  | The end of the specified portion of array. |
-
-**Return:** The slice method returns an *Array object* containing the specified portion of arrayObj.
-
-[MDN link](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice) | [MSDN link](https://msdn.microsoft.com/library/tkcsy6fe%28v=vs.94%29.aspx?f=255&MSPPError=-2147217396)
-
-## Examples
-```js
-var origArray = [3, 5, 7, 9];
-var newArray = origArray. slice(0, -1);
-document.write(origArray);
-document.write("<br/>");
-newArray = origArray. slice(-2);
-document.write(newArray);
-
-// Output:
-// 3,5,7,9
-// 7,9
-```
-
-```js
-// Our good friend the citrus from fruits example
-var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'];
-var citrus = fruits.slice(1, 3);
-
-// citrus contains ['Orange','Lemon']
+# Array.prototype.slice()
+
+> The `slice()` method returns a shallow copy of a portion of an array into a new array object.
+
+```js
+arr.slice([begin[, end]])
+```
+
+| Necessity | Parameter | Description                                                          |
+|-------------------|-----------|----------------------------------------------------------------------|
+| Required          | arr  | An Array object. |
+| Required          | begin    | The beginning of the specified portion of array.                     |
+| Optional          | end  | The end of the specified portion of array. |
+
+**Return:** The slice method returns an *Array object* containing the specified portion of arrayObj.
+
+[MDN link](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice) | [MSDN link](https://msdn.microsoft.com/library/tkcsy6fe%28v=vs.94%29.aspx?f=255&MSPPError=-2147217396)
+
+## Examples
+```js
+var origArray = [3, 5, 7, 9];
+var newArray = origArray. slice(0, -1);
+document.write(origArray);
+document.write("<br/>");
+newArray = origArray. slice(-2);
+document.write(newArray);
+
+// Output:
+// 3,5,7,9
+// 7,9
+```
+
+```js
+// Our good friend the citrus from fruits example
+var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'];
+var citrus = fruits.slice(1, 3);
+
+// citrus contains ['Orange','Lemon']
 ```
\ No newline at end of file
diff --git a/js-Array-prototype-some.md b/js-Array-prototype-some.md
index e34ce42..64429bb 100644
--- a/js-Array-prototype-some.md
+++ b/js-Array-prototype-some.md
@@ -1,82 +1,82 @@
-# Array.prototype.some()
-
-The JavaScript array method `.some()` will take a callback function to test each element in the array; once the callback returns `true` then `.some()` will return true immediately. 
-
-**Syntax**
-```js
-var arr = [1, 2, 3, 4];
-arr.some(callback[, thisArg]);
-```
-
-### Callback Function
-
-**Syntax**
-```js
-var isEven = function isEven(currentElement, index, array) {
-    if(currentElement % 2 === 0) {
-        return true;
-    } else {
-        return false;
-    }
-}
-```
-*see wiki* on [Arithmetic Operators](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Arithmetic-Operators) to see the remainder operator `%`
-
-**Has 3 arguments**
-
-- currentElement
-    - this is a variable that represents the element that is being passed to the callback.
-- index
-    - this is the index value of the current element starting at 0
-- array
-    - the array that `.some()` was call on.
-
-The callback function should implement a test case.
-
-### thisArg 
-
-Is an optional parameter and more info can be found at the [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some)
-
-## Description 
-
-`.some()` will run the callback function for each element in the array. Once the callback returns true, `.some()` will return `true`. If the callback returns a [falsy value](https://developer.mozilla.org/en-US/docs/Glossary/Falsy) for *every* element in the array then `.some()` returns false.
-
-`.some()` will not change/mutate the array that called it.
-
-## Examples
-
-**Passing a function to `.some()`**
-```js
-var isEven = function isEven(currentElement, index, array) {
-    if(currentElement % 2 === 0) {
-        return true;
-    } else {
-        return false;
-    }
-}
-
-var arr1 = [1, 2, 3, 4, 5, 6];
-arr1.some(isEven);  // returns true
-var arr2 = [1, 3, 5, 7];
-arr2.some(isEven);  // returns false
-```
-
-**Anonymous function**
-```js
-var arr3 = ['Free', 'Code', 'Camp', 'The Amazing'];
-arr3.some(function(curr, index, arr) {
-    if (curr === 'The Amazing') {
-        return true;
-    } 
-    }); // returns true
-
-var arr4 = [1, 2, 14, 5, 17, 9];
-arr4.some(function(curr, index, arr) {
-    return curr > 20;
-    });  // returns false
-
-// ES6 arrows functions
-arr4.some((curr) => curr >= 14)  // returns true
-```
-
+# Array.prototype.some()
+
+The JavaScript array method `.some()` will take a callback function to test each element in the array; once the callback returns `true` then `.some()` will return true immediately. 
+
+**Syntax**
+```js
+var arr = [1, 2, 3, 4];
+arr.some(callback[, thisArg]);
+```
+
+### Callback Function
+
+**Syntax**
+```js
+var isEven = function isEven(currentElement, index, array) {
+    if(currentElement % 2 === 0) {
+        return true;
+    } else {
+        return false;
+    }
+}
+```
+*see wiki* on [Arithmetic Operators](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Arithmetic-Operators) to see the remainder operator `%`
+
+**Has 3 arguments**
+
+- currentElement
+    - this is a variable that represents the element that is being passed to the callback.
+- index
+    - this is the index value of the current element starting at 0
+- array
+    - the array that `.some()` was call on.
+
+The callback function should implement a test case.
+
+### thisArg 
+
+Is an optional parameter and more info can be found at the [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some)
+
+## Description 
+
+`.some()` will run the callback function for each element in the array. Once the callback returns true, `.some()` will return `true`. If the callback returns a [falsy value](https://developer.mozilla.org/en-US/docs/Glossary/Falsy) for *every* element in the array then `.some()` returns false.
+
+`.some()` will not change/mutate the array that called it.
+
+## Examples
+
+**Passing a function to `.some()`**
+```js
+var isEven = function isEven(currentElement, index, array) {
+    if(currentElement % 2 === 0) {
+        return true;
+    } else {
+        return false;
+    }
+}
+
+var arr1 = [1, 2, 3, 4, 5, 6];
+arr1.some(isEven);  // returns true
+var arr2 = [1, 3, 5, 7];
+arr2.some(isEven);  // returns false
+```
+
+**Anonymous function**
+```js
+var arr3 = ['Free', 'Code', 'Camp', 'The Amazing'];
+arr3.some(function(curr, index, arr) {
+    if (curr === 'The Amazing') {
+        return true;
+    } 
+    }); // returns true
+
+var arr4 = [1, 2, 14, 5, 17, 9];
+arr4.some(function(curr, index, arr) {
+    return curr > 20;
+    });  // returns false
+
+// ES6 arrows functions
+arr4.some((curr) => curr >= 14)  // returns true
+```
+
 Source [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some)
\ No newline at end of file
diff --git a/js-Array-prototype-toString.md b/js-Array-prototype-toString.md
index 7668194..258d381 100644
--- a/js-Array-prototype-toString.md
+++ b/js-Array-prototype-toString.md
@@ -1,22 +1,22 @@
-# Array.prototype.toString()
-
-The JavaScript array method `.toString()` is used to convert an array into a single string, with each element joined by a comma. There are no parameters for the method. 
-
-**Syntax**
-```js
-var arr = [1, 2, 3, 4];
-arr.toString();
-```
-
-**Usage**
-
-```js
-var str1 = [1, 2, 3, 4, 5].toString();  // str1 = '1,2,3,4,5';
-var str2 = ['1', '2', '3', '4'].toString();  // str2 = '1,2,3,4';
-var str3 = ['Free', 'Code', 'Camp'].toString();  // str3 = 'Free,Code,Camp';
-var str4 = ['phone', '555-6726'].toString();   // str4 = 'phone,555-6726';
-var str5 = ['August', 'September', 'October'].toString();  // str5 = 'August,September,October';
-var str6 = ['Words', 'and', 3, 4].toString();  // str6 = 'Words,and,3,4';
-```
-
+# Array.prototype.toString()
+
+The JavaScript array method `.toString()` is used to convert an array into a single string, with each element joined by a comma. There are no parameters for the method. 
+
+**Syntax**
+```js
+var arr = [1, 2, 3, 4];
+arr.toString();
+```
+
+**Usage**
+
+```js
+var str1 = [1, 2, 3, 4, 5].toString();  // str1 = '1,2,3,4,5';
+var str2 = ['1', '2', '3', '4'].toString();  // str2 = '1,2,3,4';
+var str3 = ['Free', 'Code', 'Camp'].toString();  // str3 = 'Free,Code,Camp';
+var str4 = ['phone', '555-6726'].toString();   // str4 = 'phone,555-6726';
+var str5 = ['August', 'September', 'October'].toString();  // str5 = 'August,September,October';
+var str6 = ['Words', 'and', 3, 4].toString();  // str6 = 'Words,and,3,4';
+```
+
 Source: [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toString)
\ No newline at end of file
diff --git a/js-Boolean.md b/js-Boolean.md
index 52c053a..d85a826 100644
--- a/js-Boolean.md
+++ b/js-Boolean.md
@@ -1,39 +1,39 @@
-The value passed as the first parameter is converted to a boolean value, if necessary. If value is omitted or is 0, -0, null, false, NaN, undefined, or the empty string (""), the object has an initial value of false. All other values, including any object or the string "false", create an object with an initial value of true.
-
-Do not confuse the primitive Boolean values true and false with the true and false values of the Boolean object.
-
-## More Details
-
-Any object whose value is not undefined or null, including a Boolean object whose value is false, evaluates to true when passed to a conditional statement. For example, the condition in the following if statement evaluates to true:
-
-```
-var x = new Boolean(false);
-if (x) {
-  // this code is executed
-}
-```
-This behavior does not apply to Boolean primitives. For example, the condition in the following if statement evaluates to false:
-
-```
-var x = false;
-if (x) {
-  // this code is not executed
-}
-```
-Do not use a Boolean object to convert a non-boolean value to a boolean value. Instead, use Boolean as a function to perform this task:
-
-```
-var x = Boolean(expression);     // preferred
-var x = new Boolean(expression); // don't use
-```
-If you specify any object, including a Boolean object whose value is false, as the initial value of a Boolean object, the new Boolean object has a value of true.
-
-```
-var myFalse = new Boolean(false);   // initial value of false
-var g = new Boolean(myFalse);       // initial value of true
-var myString = new String('Hello'); // string object
-var s = new Boolean(myString);      // initial value of true
-```
-Do not use a Boolean object in place of a Boolean primitive.
-
+The value passed as the first parameter is converted to a boolean value, if necessary. If value is omitted or is 0, -0, null, false, NaN, undefined, or the empty string (""), the object has an initial value of false. All other values, including any object or the string "false", create an object with an initial value of true.
+
+Do not confuse the primitive Boolean values true and false with the true and false values of the Boolean object.
+
+## More Details
+
+Any object whose value is not undefined or null, including a Boolean object whose value is false, evaluates to true when passed to a conditional statement. For example, the condition in the following if statement evaluates to true:
+
+```
+var x = new Boolean(false);
+if (x) {
+  // this code is executed
+}
+```
+This behavior does not apply to Boolean primitives. For example, the condition in the following if statement evaluates to false:
+
+```
+var x = false;
+if (x) {
+  // this code is not executed
+}
+```
+Do not use a Boolean object to convert a non-boolean value to a boolean value. Instead, use Boolean as a function to perform this task:
+
+```
+var x = Boolean(expression);     // preferred
+var x = new Boolean(expression); // don't use
+```
+If you specify any object, including a Boolean object whose value is false, as the initial value of a Boolean object, the new Boolean object has a value of true.
+
+```
+var myFalse = new Boolean(false);   // initial value of false
+var g = new Boolean(myFalse);       // initial value of true
+var myString = new String('Hello'); // string object
+var s = new Boolean(myString);      // initial value of true
+```
+Do not use a Boolean object in place of a Boolean primitive.
+
 [Orininal](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)
\ No newline at end of file
diff --git a/js-String-prototype-split.md b/js-String-prototype-split.md
index eebed20..88b2936 100644
--- a/js-String-prototype-split.md
+++ b/js-String-prototype-split.md
@@ -1,44 +1,44 @@
-# String.prototype.split()
-
-The split() method splits a string into an array of strings.
-
-**Syntax**
-```js
-str.split(separator[, limit]);
-```
-
-### Parameters
-
-**separator**
-Optional. The separator specifies which characters to use for separating the string. If separator is omitted `str.split();` the array will contain just one element consisting of the entire string. If separator is an empty string `str.split("");` the string is converted into an array of characters.
-
-**limit**
-Optional. Whole number integer that sets a limit to the number of splits that can be found. The `split()` method will still find all of the matches to the separator, but will truncate the returned array to a maximum length of `limit` elements.
-
-## Description 
-
-The split() method returns the new array.
-
-At each match of the separator `.split()` will split the string and add the split section as an element to an array.
-
-
-## Examples
-
-**Splitting a string into an array of substrings**
-```js
-var str = "HelloWorld";
-console.log(str.split(""));
-// Console will output: ["H", "e", "l", "l", "o", "W", "o", "r", "l", "d"]
-
-var str2 = "HelloWorld";
-console.log(str2.split());
-// Console will output: ["Hello World"]
-
-var str3 = "HelloWorld";
-console.log(str3.split("Wo"));
-// Console will output: ["Hello", "rld"]
-
-```
-
-
+# String.prototype.split()
+
+The split() method splits a string into an array of strings.
+
+**Syntax**
+```js
+str.split(separator[, limit]);
+```
+
+### Parameters
+
+**separator**
+Optional. The separator specifies which characters to use for separating the string. If separator is omitted `str.split();` the array will contain just one element consisting of the entire string. If separator is an empty string `str.split("");` the string is converted into an array of characters.
+
+**limit**
+Optional. Whole number integer that sets a limit to the number of splits that can be found. The `split()` method will still find all of the matches to the separator, but will truncate the returned array to a maximum length of `limit` elements.
+
+## Description 
+
+The split() method returns the new array.
+
+At each match of the separator `.split()` will split the string and add the split section as an element to an array.
+
+
+## Examples
+
+**Splitting a string into an array of substrings**
+```js
+var str = "HelloWorld";
+console.log(str.split(""));
+// Console will output: ["H", "e", "l", "l", "o", "W", "o", "r", "l", "d"]
+
+var str2 = "HelloWorld";
+console.log(str2.split());
+// Console will output: ["Hello World"]
+
+var str3 = "HelloWorld";
+console.log(str3.split("Wo"));
+// Console will output: ["Hello", "rld"]
+
+```
+
+
 Source [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split)
\ No newline at end of file
diff --git a/js-String-prototype-toLowerCase.md b/js-String-prototype-toLowerCase.md
index b7d925b..d548a78 100644
--- a/js-String-prototype-toLowerCase.md
+++ b/js-String-prototype-toLowerCase.md
@@ -1,19 +1,19 @@
-# String.prototype.toLowerCase()
-
-The JavaScript method `.toLowerCase()` returns the same string it was called on, but in all lower case.
-
-**Syntax**
-```js
-str.toLowerCase()
-```
-
-
-## Examples
-```
-
-console.log("HELLO WORLD".toLowerCase()); // Console will output "hello world"
-
-```
-
-
+# String.prototype.toLowerCase()
+
+The JavaScript method `.toLowerCase()` returns the same string it was called on, but in all lower case.
+
+**Syntax**
+```js
+str.toLowerCase()
+```
+
+
+## Examples
+```
+
+console.log("HELLO WORLD".toLowerCase()); // Console will output "hello world"
+
+```
+
+
 Source [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLowerCase)
\ No newline at end of file
diff --git a/js-String-prototype-toUpperCase.md b/js-String-prototype-toUpperCase.md
index 65e1c42..e490bee 100644
--- a/js-String-prototype-toUpperCase.md
+++ b/js-String-prototype-toUpperCase.md
@@ -1,19 +1,19 @@
-# String.prototype.toUpperCase()
-
-The JavaScript method `.toUpperCase()` returns the same string it was called on, but in all upper case.
-
-**Syntax**
-```js
-str.toUpperCase()
-```
-
-
-## Examples
-```
-
-console.log("hello world".toUpperCase()); // Console will output "HELLO WORLD"
-
-```
-
-
+# String.prototype.toUpperCase()
+
+The JavaScript method `.toUpperCase()` returns the same string it was called on, but in all upper case.
+
+**Syntax**
+```js
+str.toUpperCase()
+```
+
+
+## Examples
+```
+
+console.log("hello world".toUpperCase()); // Console will output "HELLO WORLD"
+
+```
+
+
 Source [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase)
\ No newline at end of file
diff --git a/js-arguments.md b/js-arguments.md
index ed62675..3051c91 100644
--- a/js-arguments.md
+++ b/js-arguments.md
@@ -1,62 +1,62 @@
-The arguments object is an **array-like object** *(meaning that it looks like an array but it's not)* that stores all of the arguments that you passed to a function and is proprietary to that function in particular. If you were to pass 3 arguments to a function, say `storeNames()`, those 3 arguments would be stored inside an object called **arguments** and it would look like this when we pass the arguments `storeNames("Mulder", "Scully", "Alex Krycek")` to our function:
-
-- First, we declare a function and make it return the arguments object.
-``` javascript
-function storeNames() { return arguments; }
-```
-
-- Then, when we execute that function with **n arguments**, 3 in this case, it will return the object to us and it will **look like** an array. We can convert it to an array, but more on that later...
-``` javascript
-// If we execute the following line in the console:
-storeNames("Mulder", "Scully", "Alex Kryceck");
-// The output will be: ["Mulder", "Scully", "Alex Kryceck"]
-```
-
-If you want to know more about this, such as converting it to an array or the optimization problem that comes with using the *slice(*) method and how to solve it, click on **read more** (Gitter Chat Only).
-
-## Treat it as an array
-You can invoke arguments by using `arguments[n]` (where *n* is the index of the argument in the array-like object) but if you want to use it as an array for iteration purposes or applying array methods to it, you need to *convert it to an array* by declaring a variable and using the Array.prototype.slice.call method (because *arguments* is not an array):
-
-``` javascript
-var args = Array.prototype.slice.call(arguments)
-```
-
-Since **slice()** has two (the parameter **end** is optional) parameters, you can grab a certain portion of the arguments by specifying (using the *slice.call()* method renders these two parameters optional, not just *end*) the beginning and the ending of your portion; check out the following code:
-
-``` javascript
-function getGrades() {
-	var args = Array.prototype.slice.call(arguments, 1, 3);
-	return args;
-}
-
-// Let's output this!
-console.log(getGrades(90, 100, 75, 40, 89, 95));
-
-// OUTPUT SHOULD BE: //
-// [100, 75] <- Why? Because it started from index 1 and stopped at index 3
-// so, index 3 (40) wasn't taken in consideration.
-//
-// If we remove the '3' parameter, leaving just (arguments, 1) we'd get
-// every argument from index 1: [100, 75, 40, 89, 95].
-```
-
-### Optimization issues with Array.slice()
-
-There is a little problem, it's not recommended to use slice in the arguments object (optimization reasons)...
-
-> **Important**: You should not slice on arguments because it prevents optimizations in JavaScript engines (V8 for example). Instead, try constructing a new array by iterating through the arguments object. 
-
-> *by* ***Mozilla Developer Network***
-
-So, what other method is available to convert *arguments* to an array?
-I recommend the for-loop (not the for-in loop), you can do it like this:
-
-``` javascript
-var args = []; // Empty array, at first.
-for (var i = 0; i < arguments.length; i++) {
-	args.push(arguments[i])
-} // Now 'args' is an array that holds your arguments.
-```
-
-For more information on the optimization issues:  
+The arguments object is an **array-like object** *(meaning that it looks like an array but it's not)* that stores all of the arguments that you passed to a function and is proprietary to that function in particular. If you were to pass 3 arguments to a function, say `storeNames()`, those 3 arguments would be stored inside an object called **arguments** and it would look like this when we pass the arguments `storeNames("Mulder", "Scully", "Alex Krycek")` to our function:
+
+- First, we declare a function and make it return the arguments object.
+``` javascript
+function storeNames() { return arguments; }
+```
+
+- Then, when we execute that function with **n arguments**, 3 in this case, it will return the object to us and it will **look like** an array. We can convert it to an array, but more on that later...
+``` javascript
+// If we execute the following line in the console:
+storeNames("Mulder", "Scully", "Alex Kryceck");
+// The output will be: ["Mulder", "Scully", "Alex Kryceck"]
+```
+
+If you want to know more about this, such as converting it to an array or the optimization problem that comes with using the *slice(*) method and how to solve it, click on **read more** (Gitter Chat Only).
+
+## Treat it as an array
+You can invoke arguments by using `arguments[n]` (where *n* is the index of the argument in the array-like object) but if you want to use it as an array for iteration purposes or applying array methods to it, you need to *convert it to an array* by declaring a variable and using the Array.prototype.slice.call method (because *arguments* is not an array):
+
+``` javascript
+var args = Array.prototype.slice.call(arguments)
+```
+
+Since **slice()** has two (the parameter **end** is optional) parameters, you can grab a certain portion of the arguments by specifying (using the *slice.call()* method renders these two parameters optional, not just *end*) the beginning and the ending of your portion; check out the following code:
+
+``` javascript
+function getGrades() {
+	var args = Array.prototype.slice.call(arguments, 1, 3);
+	return args;
+}
+
+// Let's output this!
+console.log(getGrades(90, 100, 75, 40, 89, 95));
+
+// OUTPUT SHOULD BE: //
+// [100, 75] <- Why? Because it started from index 1 and stopped at index 3
+// so, index 3 (40) wasn't taken in consideration.
+//
+// If we remove the '3' parameter, leaving just (arguments, 1) we'd get
+// every argument from index 1: [100, 75, 40, 89, 95].
+```
+
+### Optimization issues with Array.slice()
+
+There is a little problem, it's not recommended to use slice in the arguments object (optimization reasons)...
+
+> **Important**: You should not slice on arguments because it prevents optimizations in JavaScript engines (V8 for example). Instead, try constructing a new array by iterating through the arguments object. 
+
+> *by* ***Mozilla Developer Network***
+
+So, what other method is available to convert *arguments* to an array?
+I recommend the for-loop (not the for-in loop), you can do it like this:
+
+``` javascript
+var args = []; // Empty array, at first.
+for (var i = 0; i < arguments.length; i++) {
+	args.push(arguments[i])
+} // Now 'args' is an array that holds your arguments.
+```
+
+For more information on the optimization issues:  
 [Optimization Killers: Managing Arugments](https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#3-managing-arguments)
\ No newline at end of file
diff --git a/js-closures.md b/js-closures.md
index 9a7fd6b..6436039 100644
--- a/js-closures.md
+++ b/js-closures.md
@@ -1,16 +1,16 @@
-Closures are functions that refer to independent (free) variables. In other words, the function defined in the closure 'remembers' the environment in which it was created.
-
-```js
-function init() {
-  var name = "Mozilla"; // name is a local variable created by init
-  function displayName() { // displayName() is the inner function, a closure
-    alert(name); // use variable declared in the parent function    
-  }
-  displayName();    
-};
-init();
-```
-
-see [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures)
-
+Closures are functions that refer to independent (free) variables. In other words, the function defined in the closure 'remembers' the environment in which it was created.
+
+```js
+function init() {
+  var name = "Mozilla"; // name is a local variable created by init
+  function displayName() { // displayName() is the inner function, a closure
+    alert(name); // use variable declared in the parent function    
+  }
+  displayName();    
+};
+init();
+```
+
+see [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures)
+
 > tags: closure, javascript, js
\ No newline at end of file
diff --git a/js-falsy.md b/js-falsy.md
index 3af0e3f..eaf4077 100644
--- a/js-falsy.md
+++ b/js-falsy.md
@@ -1,4 +1,4 @@
-Something which evaluates to FALSE. There are only five falsey values in JavaScript:
-`undefined`, `null`, `NaN`, `0`, `""` (empty string), and `false` of course.
-
+Something which evaluates to FALSE. There are only five falsey values in JavaScript:
+`undefined`, `null`, `NaN`, `0`, `""` (empty string), and `false` of course.
+
 See also: [**truthy**](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-truthy) | [Truthy & Falsey blog post](http://james.padolsey.com/javascript/truthy-falsey/)
\ No newline at end of file
diff --git a/js-for-in-loop.md b/js-for-in-loop.md
index 930e976..339870b 100644
--- a/js-for-in-loop.md
+++ b/js-for-in-loop.md
@@ -1,58 +1,58 @@
-The `for..in` statement iterates over the enumerable properties of an object, in arbitrary order. For each distinct property, statements can be executed.
-
-```js
-for (variable in object) {
-...
-}
-```
-
-| Required/Optional | Parameter | Description                                                          |
-|-------------------|-----------|----------------------------------------------------------------------|
-| Required          | Variable  | A different property name is assigned to variable on each iteration. |
-| Optional          | Object    | Object whose enumerable properties are iterated.                     |
-
-[MDN link](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in) | [MSDN link](https://msdn.microsoft.com/library/55wb2d34.aspx)
-
-## Examples
-```js
-// Initialize object.
-a = {"a" : "Athens" , "b" : "Belgrade", "c" : "Cairo"}
-
-// Iterate over the properties.
-var s = ""
-for (var key in a) {
-    s += key + ": " + a[key];
-    s += "<br />";
-    }
-document.write (s);
-
-// Output:
-// a: Athens
-// b: Belgrade
-// c: Cairo
-```
-
-```js
-// Initialize the array.
-var arr = new Array("zero","one","two");
-
-// Add a few expando properties to the array.
-arr["orange"] = "fruit";
-arr["carrot"] = "vegetable";
-
-// Iterate over the properties and elements.
-var s = "";
-for (var key in arr) {
-    s += key + ": " + arr[key];
-    s += "<br />";
-}
-
-document.write (s);
-
-// Output:
-//   0: zero
-//   1: one
-//   2: two
-//   orange: fruit
-//   carrot: vegetable
+The `for..in` statement iterates over the enumerable properties of an object, in arbitrary order. For each distinct property, statements can be executed.
+
+```js
+for (variable in object) {
+...
+}
+```
+
+| Required/Optional | Parameter | Description                                                          |
+|-------------------|-----------|----------------------------------------------------------------------|
+| Required          | Variable  | A different property name is assigned to variable on each iteration. |
+| Optional          | Object    | Object whose enumerable properties are iterated.                     |
+
+[MDN link](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in) | [MSDN link](https://msdn.microsoft.com/library/55wb2d34.aspx)
+
+## Examples
+```js
+// Initialize object.
+a = {"a" : "Athens" , "b" : "Belgrade", "c" : "Cairo"}
+
+// Iterate over the properties.
+var s = ""
+for (var key in a) {
+    s += key + ": " + a[key];
+    s += "<br />";
+    }
+document.write (s);
+
+// Output:
+// a: Athens
+// b: Belgrade
+// c: Cairo
+```
+
+```js
+// Initialize the array.
+var arr = new Array("zero","one","two");
+
+// Add a few expando properties to the array.
+arr["orange"] = "fruit";
+arr["carrot"] = "vegetable";
+
+// Iterate over the properties and elements.
+var s = "";
+for (var key in arr) {
+    s += key + ": " + arr[key];
+    s += "<br />";
+}
+
+document.write (s);
+
+// Output:
+//   0: zero
+//   1: one
+//   2: two
+//   orange: fruit
+//   carrot: vegetable
 ```
\ No newline at end of file
diff --git a/js-for-loop.md b/js-for-loop.md
index c7cfee9..0f232bc 100644
--- a/js-for-loop.md
+++ b/js-for-loop.md
@@ -1,12 +1,12 @@
-The javascript `for` command iterates through a list of items.
-
-```js
-for (var i = 0; i < 9; i++) {
-   console.log(i);
-   // more statements
-}
-```
-
-links: [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for)
-
-related: js-loops
+The javascript `for` command iterates through a list of items.
+
+```js
+for (var i = 0; i < 9; i++) {
+   console.log(i);
+   // more statements
+}
+```
+
+links: [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for)
+
+related: js-loops
diff --git a/js-for-of-loop.md b/js-for-of-loop.md
index fbdee36..b8567a7 100644
--- a/js-for-of-loop.md
+++ b/js-for-of-loop.md
@@ -1,43 +1,43 @@
-The `for..or` statement creates a loop Iterating over iterable objects (including Array, Map, Set, arguments object and so on), invoking a custom iteration hook with statements to be executed for the value of each distinct property.
-
-```js
-for (variable of object) {
-  statement
-}
-```
-
-|          | Description                          |
-|----------|-------------------------------------|
-| variable | On each iteration a value of a different property is assigned to variable.                                 |
-| object | Object whose enumerable properties are iterated. |
-
-[MDN link](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/for...of) | [MSDN link](https://msdn.microsoft.com/library/dn858238%28v=vs.94%29.aspx?f=255&MSPPError=-2147217396)
-
-## Examples
-
-```js
-let arr = [ "fred", "tom", "bob" ];
-
-for (let i of arr) {
-    console.log(i);
-}
-
-// Output:
-// fred
-// tom
-// bob
-```
-
-```js
-var m = new Map();
-m.set(1, "black");
-m.set(2, "red");
-
-for (var n of m) {
-console.log(n);
-}
-
-// Output:
-// 1,black
-// 2,red
+The `for..or` statement creates a loop Iterating over iterable objects (including Array, Map, Set, arguments object and so on), invoking a custom iteration hook with statements to be executed for the value of each distinct property.
+
+```js
+for (variable of object) {
+  statement
+}
+```
+
+|          | Description                          |
+|----------|-------------------------------------|
+| variable | On each iteration a value of a different property is assigned to variable.                                 |
+| object | Object whose enumerable properties are iterated. |
+
+[MDN link](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/for...of) | [MSDN link](https://msdn.microsoft.com/library/dn858238%28v=vs.94%29.aspx?f=255&MSPPError=-2147217396)
+
+## Examples
+
+```js
+let arr = [ "fred", "tom", "bob" ];
+
+for (let i of arr) {
+    console.log(i);
+}
+
+// Output:
+// fred
+// tom
+// bob
+```
+
+```js
+var m = new Map();
+m.set(1, "black");
+m.set(2, "red");
+
+for (var n of m) {
+console.log(n);
+}
+
+// Output:
+// 1,black
+// 2,red
 ```
\ No newline at end of file
diff --git a/js-immutable.md b/js-immutable.md
index 3455c24..f79cbef 100644
--- a/js-immutable.md
+++ b/js-immutable.md
@@ -1,18 +1,18 @@
-> Immutable means unchangeable i.e. you can't change.
-
-Javascript has lots of immutable types e.g. `string` primitive type. Try this in your console.
-
-```js
-s = "red";
-console.log(s[1]); //→ "e"
-s[1] = "x";
-console.log(s) //→ "red"
-```
-the `s` didn't change! WAT!
-
-## Details
-Some string methods like `String.replace` returns a new string. 
-
-JavaScript has one complex data type, the Object data type, and it has five simple data types: Number, String, Boolean, Undefined, and Null. These simple (primitive) data types are immutable (cannot be changed), while objects are mutable (can be changed).
-
+> Immutable means unchangeable i.e. you can't change.
+
+Javascript has lots of immutable types e.g. `string` primitive type. Try this in your console.
+
+```js
+s = "red";
+console.log(s[1]); //→ "e"
+s[1] = "x";
+console.log(s) //→ "red"
+```
+the `s` didn't change! WAT!
+
+## Details
+Some string methods like `String.replace` returns a new string. 
+
+JavaScript has one complex data type, the Object data type, and it has five simple data types: Number, String, Boolean, Undefined, and Null. These simple (primitive) data types are immutable (cannot be changed), while objects are mutable (can be changed).
+
 tags: js, immutability
\ No newline at end of file
diff --git a/js-loops.md b/js-loops.md
index 6083cd3..090348f 100644
--- a/js-loops.md
+++ b/js-loops.md
@@ -1,17 +1,17 @@
-Javascript has a few different ways to control flow, otherwise known as loops
-
-- [for](js-for)
-- [while](js-while)
-- [until](js-until)
-
-you can type `js for` or `js while` to get more info on any of these.
-
-this is a stub entry, please help add to it!
-
-----
-
-> Links: [MDN **for loop**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for)
-
-> related: for, while, for-each, for-of, for-in
-
-> advanced: comprehensions, iterators
+Javascript has a few different ways to control flow, otherwise known as loops
+
+- [for](js-for)
+- [while](js-while)
+- [until](js-until)
+
+you can type `js for` or `js while` to get more info on any of these.
+
+this is a stub entry, please help add to it!
+
+----
+
+> Links: [MDN **for loop**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for)
+
+> related: for, while, for-each, for-of, for-in
+
+> advanced: comprehensions, iterators
diff --git a/js-scope.md b/js-scope.md
index 751872f..18467d9 100644
--- a/js-scope.md
+++ b/js-scope.md
@@ -1,6 +1,6 @@
-The current context of execution. The context in which values and expressions are "visible," or can be referenced. If a variable or other expression is not "in the current scope," then it is unavailable for use. Scopes can also be layered in a hierarchy, so that child scopes have access to parent scopes, but not vice versa.
-
-**See also:** :arrow_heading_up: [Links](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-scope#links)
-## Links
-* [Understanding Scope and Context](http://ryanmorr.com/understanding-scope-and-context-in-javascript/) - Detailed explanation with examples by Ryan Morr
+The current context of execution. The context in which values and expressions are "visible," or can be referenced. If a variable or other expression is not "in the current scope," then it is unavailable for use. Scopes can also be layered in a hierarchy, so that child scopes have access to parent scopes, but not vice versa.
+
+**See also:** :arrow_heading_up: [Links](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-scope#links)
+## Links
+* [Understanding Scope and Context](http://ryanmorr.com/understanding-scope-and-context-in-javascript/) - Detailed explanation with examples by Ryan Morr
 * [Wikipedia - Scope](https://en.wikipedia.org/wiki/Scope_(computer_science))
\ No newline at end of file
diff --git a/js-ternary.md b/js-ternary.md
index 48bbf51..120d7ae 100644
--- a/js-ternary.md
+++ b/js-ternary.md
@@ -1,13 +1,13 @@
-The Ternary operator replaces an if/then block in a very small compact way.
-It's mostly used in one liners for simple tests and replacements, like this:
-
-```js
-var x = false;
-var s = x ? "yes" : "no";
-console.log(s);  //→ "no"
-
-```
-## Description
-If condition is true, the operator returns the value of expr1; otherwise, it returns the value of expr2. For example, to display a different message based on the value of the isMember variable, you could use this statement:
-
+The Ternary operator replaces an if/then block in a very small compact way.
+It's mostly used in one liners for simple tests and replacements, like this:
+
+```js
+var x = false;
+var s = x ? "yes" : "no";
+console.log(s);  //→ "no"
+
+```
+## Description
+If condition is true, the operator returns the value of expr1; otherwise, it returns the value of expr2. For example, to display a different message based on the value of the isMember variable, you could use this statement:
+
 **Read more:** [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator)
\ No newline at end of file
diff --git a/js-truthy.md b/js-truthy.md
index 08bd129..c225810 100644
--- a/js-truthy.md
+++ b/js-truthy.md
@@ -1,5 +1,5 @@
-> A **truthy** value is a value that translates to **true** when evaluated in a *Boolean* context.
-
-All values are **truthy** unless they are defined as **falsy** (i.e. except for `false`, `0`, `""`, `null`, `undefined` and `NaN`).
-
+> A **truthy** value is a value that translates to **true** when evaluated in a *Boolean* context.
+
+All values are **truthy** unless they are defined as **falsy** (i.e. except for `false`, `0`, `""`, `null`, `undefined` and `NaN`).
+
 See also: [falsy](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/js-falsy) | [MDN](https://developer.mozilla.org/en-US/docs/Glossary/Truthy)
\ No newline at end of file
diff --git a/js-undefined.md b/js-undefined.md
index 067e063..173767f 100644
--- a/js-undefined.md
+++ b/js-undefined.md
@@ -1,3 +1,3 @@
-A primitive value automatically assigned to variables that have just been declared or to formal arguments for which there are no actual arguments.
-
+A primitive value automatically assigned to variables that have just been declared or to formal arguments for which there are no actual arguments.
+
 [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined)
\ No newline at end of file
diff --git a/jsonp.md b/jsonp.md
index 2088e70..a4db612 100644
--- a/jsonp.md
+++ b/jsonp.md
@@ -1,4 +1,4 @@
-https://en.wikipedia.org/wiki/JSONP
-https://learn.jquery.com/ajax/working-with-jsonp/
-http://api.jquery.com/jquery.getjson/#jsonp
+https://en.wikipedia.org/wiki/JSONP
+https://learn.jquery.com/ajax/working-with-jsonp/
+http://api.jquery.com/jquery.getjson/#jsonp
 http://stackoverflow.com/questions/5943630/basic-example-of-using-ajax-with-jsonp
\ No newline at end of file
diff --git a/latex.md b/latex.md
index 07ff752..18b6043 100644
--- a/latex.md
+++ b/latex.md
@@ -1,38 +1,38 @@
-LaTeX is designed for the production of technical and scientific documentation.
-You can create matrix, arrays or several other mathmatical functions.
-
-`` $$ (latex language) $$ ``
-
-You can embed Latex in GitterIM. Examples:
-
-**Array**:
-$$\begin{array} {c c}
-arr11 & arr12\\
-arr21 & arr22\\
-\end{array}$$
-
-**Matrix**:
-$$\begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}$$
-
-**formatting**:
-$$\huge\textstyle\color{#F00}{BigRed}\small\textstyle\color{#0F0}{SmallGreen}$$
-
-[Function Support](https://github.com/Khan/KaTeX/wiki/Function-Support-in-KaTeX)
-## details
-[KaTeX Github Repo](https://github.com/Khan/KaTeX)
-LaTeX is a high-quality typesetting system; it includes features designed for the production of technical and scientific documentation. LaTeX is the de facto standard for the communication and publication of scientific documents.
-His advantages are noticable in long documents like books, papers or thesis.
-
-Gitter uses Katex (an custom implementation of LaTeX) and it can be used introducing the following code:
-
-```latex
-$$\begin{array} {c c}
-item11 & item12\
-item21 & item 22\
-\end{array}
-$$
-```
-
-Text:
-- `$$\huge\textstyle{some text}$$` -> $$\huge\textstyle{some text}$$
+LaTeX is designed for the production of technical and scientific documentation.
+You can create matrix, arrays or several other mathmatical functions.
+
+`` $$ (latex language) $$ ``
+
+You can embed Latex in GitterIM. Examples:
+
+**Array**:
+$$\begin{array} {c c}
+arr11 & arr12\\
+arr21 & arr22\\
+\end{array}$$
+
+**Matrix**:
+$$\begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}$$
+
+**formatting**:
+$$\huge\textstyle\color{#F00}{BigRed}\small\textstyle\color{#0F0}{SmallGreen}$$
+
+[Function Support](https://github.com/Khan/KaTeX/wiki/Function-Support-in-KaTeX)
+## details
+[KaTeX Github Repo](https://github.com/Khan/KaTeX)
+LaTeX is a high-quality typesetting system; it includes features designed for the production of technical and scientific documentation. LaTeX is the de facto standard for the communication and publication of scientific documents.
+His advantages are noticable in long documents like books, papers or thesis.
+
+Gitter uses Katex (an custom implementation of LaTeX) and it can be used introducing the following code:
+
+```latex
+$$\begin{array} {c c}
+item11 & item12\
+item21 & item 22\
+\end{array}
+$$
+```
+
+Text:
+- `$$\huge\textstyle{some text}$$` -> $$\huge\textstyle{some text}$$
 - `$$\color{#F90}{some text}$$` -> $$\color{#F90}{some text}$$
\ No newline at end of file
diff --git a/on-bonfire-seek-and-destroy-please-it-appears-i-am-getting-the-right-output-but-none-of-the-tests-are-passing-can-someone-help-me-find-the-error.md b/on-bonfire-seek-and-destroy-please-it-appears-i-am-getting-the-right-output-but-none-of-the-tests-are-passing-can-someone-help-me-find-the-error.md
index 62aeafe..b8c60fd 100644
--- a/on-bonfire-seek-and-destroy-please-it-appears-i-am-getting-the-right-output-but-none-of-the-tests-are-passing-can-someone-help-me-find-the-error.md
+++ b/on-bonfire-seek-and-destroy-please-it-appears-i-am-getting-the-right-output-but-none-of-the-tests-are-passing-can-someone-help-me-find-the-error.md
@@ -1,31 +1,31 @@
-  var arg = arguments.length;
-
-  var newArr = [];
-
-  var found = false;
-  
-  for (i = 0; i < arr.length; i++) {
-
-    found = false;
-
-    for (j = 1; j < arg - 1; j++) {
-
-      if (arr[i] == arguments[j]) {
-
-        found = true;
-
-      }
-
-    } 
-
-    if (!found) {
-
-      newArr.push(arr[i]);
-
-    }
-
-  }
-
-  return newArr;
-
+  var arg = arguments.length;
+
+  var newArr = [];
+
+  var found = false;
+  
+  for (i = 0; i < arr.length; i++) {
+
+    found = false;
+
+    for (j = 1; j < arg - 1; j++) {
+
+      if (arr[i] == arguments[j]) {
+
+        found = true;
+
+      }
+
+    } 
+
+    if (!found) {
+
+      newArr.push(arr[i]);
+
+    }
+
+  }
+
+  return newArr;
+
 }
\ No newline at end of file
diff --git a/ooda.md b/ooda.md
index 66feece..6df8b07 100644
--- a/ooda.md
+++ b/ooda.md
@@ -1,6 +1,6 @@
-The OODA Loop is about how fast you can iterate. Often referenced in Lean Startup circles.
-
-![OODA](https://upload.wikimedia.org/wikipedia/commons/3/3a/OODA.Boyd.svg)
-
-## see also
+The OODA Loop is about how fast you can iterate. Often referenced in Lean Startup circles.
+
+![OODA](https://upload.wikimedia.org/wikipedia/commons/3/3a/OODA.Boyd.svg)
+
+## see also
 https://en.wikipedia.org/wiki/OODA_loop
\ No newline at end of file
diff --git a/topic.md b/topic.md
index 19342fd..348b058 100644
--- a/topic.md
+++ b/topic.md
@@ -1,6 +1,6 @@
-This is an example. You should replace `topic` with the thing you want to find info on.
-For example:
-```text
-wiki css    # find a wiki page on css
-find js     # find all pages related to css
+This is an example. You should replace `topic` with the thing you want to find info on.
+For example:
+```text
+wiki css    # find a wiki page on css
+find js     # find all pages related to css
 ```
\ No newline at end of file
diff --git a/triphop.md b/triphop.md
index 2c4a1c9..21e3d97 100644
--- a/triphop.md
+++ b/triphop.md
@@ -1,3 +1,3 @@
-https://soundcloud.com/nasostsolakis/sets/triphop_electronic
-
+https://soundcloud.com/nasostsolakis/sets/triphop_electronic
+
 embedding a soundcloud track in the wiki!
\ No newline at end of file
diff --git a/update.md b/update.md
index 435e169..2c72509 100644
--- a/update.md
+++ b/update.md
@@ -1,2 +1,2 @@
-the update command will pull down any new wiki edits, or new material.
-right now you have to do this manually, sorry! But we will in future automate this process.
+the update command will pull down any new wiki edits, or new material.
+right now you have to do this manually, sorry! But we will in future automate this process.
diff --git a/video-demo.md b/video-demo.md
index 19ad15f..04868a6 100644
--- a/video-demo.md
+++ b/video-demo.md
@@ -1,3 +1,3 @@
-you can add inline video to the wiki with just a google link. Inside the chatwiki this will show up as an embedded video.
-
-https://www.youtube.com/watch?v=BMUiFMZr7vk
+you can add inline video to the wiki with just a google link. Inside the chatwiki this will show up as an embedded video.
+
+https://www.youtube.com/watch?v=BMUiFMZr7vk
diff --git a/video.md b/video.md
index 87a53e0..861eb4a 100644
--- a/video.md
+++ b/video.md
@@ -1,4 +1,4 @@
-demoing inline video clips
-
-https://www.youtube.com/watch?v=BMUiFMZr7vk
-
+demoing inline video clips
+
+https://www.youtube.com/watch?v=BMUiFMZr7vk
+
diff --git a/wat.md b/wat.md
index f08359f..cc04e2f 100644
--- a/wat.md
+++ b/wat.md
@@ -1,3 +1,3 @@
-A brilliant talk about objects in ruby, javascript and other languages. Funny and insightful.
-
-https://www.destroyallsoftware.com/talks/wat
+A brilliant talk about objects in ruby, javascript and other languages. Funny and insightful.
+
+https://www.destroyallsoftware.com/talks/wat
diff --git a/wiki-js-template.md b/wiki-js-template.md
index 221ecdd..1fe0f01 100644
--- a/wiki-js-template.md
+++ b/wiki-js-template.md
@@ -1,25 +1,25 @@
-> This Template helps you build javascript topic wiki's.
-
-### Introduction
-
-```js
-Syntax of the method that you are writing about
-```
-
-| Parameter  |           Description                         |   Necessity   |
-|------------|-----------------------------------------------|---------------|
-|  Variable  | I'm a Description                             |   Required    |
-|  Object    | The position of vertical bar is not important |   Optional    |
-
-[MDN link](URL here) | [MSDN link](URL here)
-
-## Examples
-> You should provide at least 2 different examples
-
-```js
-INSERT EXAMPLE HERE
-```
-
-```js
-INSERT EXAMPLE HERE
+> This Template helps you build javascript topic wiki's.
+
+### Introduction
+
+```js
+Syntax of the method that you are writing about
+```
+
+| Parameter  |           Description                         |   Necessity   |
+|------------|-----------------------------------------------|---------------|
+|  Variable  | I'm a Description                             |   Required    |
+|  Object    | The position of vertical bar is not important |   Optional    |
+
+[MDN link](URL here) | [MSDN link](URL here)
+
+## Examples
+> You should provide at least 2 different examples
+
+```js
+INSERT EXAMPLE HERE
+```
+
+```js
+INSERT EXAMPLE HERE
 ```
\ No newline at end of file
