Code review changes

Makes all the changes that were request by @abinoda.  Please add the comment that I requested below before merging this (pull down this branch and up the pull).

I have also added the difference between let and let! (lazy evaluation means that you can force the method to be called by using let!)

https://www.relishapp.com/rspec/rspec-core/v/2-6/docs/helper-methods/let-and-let