Lots of refactoring!

NOTE: Two foursquare tests are failing. I can't figure out how to get them to pass (they're throwing VCR errors)