diff --git a/samples/appengine/main.py b/samples/appengine/main.py
index 06d1d06..89805aa 100755
--- a/samples/appengine/main.py
+++ b/samples/appengine/main.py
@@ -53,8 +53,8 @@
     if c:
       http = httplib2.Http()
       http = c.credentials.authorize(http)
-      p = build("buzz", "v1", http=http)
-      activities = p.activities()
+      service = build("buzz", "v1", http=http)
+      activities = service.activities()
       activitylist = activities.list(scope='@consumption',
                                      userId='@me').execute()
       logging.info(activitylist)
diff --git a/samples/buzz/buzz.py b/samples/buzz/buzz.py
index 769057e..f093f20 100644
--- a/samples/buzz/buzz.py
+++ b/samples/buzz/buzz.py
@@ -43,9 +43,9 @@
   http = httplib2.Http()
   http = credentials.authorize(http)
 
-  p = build("buzz", "v1", http=http,
+  service = build("buzz", "v1", http=http,
       developerKey="AIzaSyDRRpR3GS1F1_jKNNM9HCNd2wJQyPG3oN0")
-  activities = p.activities()
+  activities = service.activities()
 
   try:
     # Retrieve the first two activities
@@ -82,7 +82,7 @@
             }
         }
     item = activitylist['items'][0]
-    comment = p.comments().insert(
+    comment = service.comments().insert(
         userId=item['actor']['id'], postId=item['id'], body=comment_body
         ).execute()
     print 'Added a comment to the new activity'
diff --git a/samples/customsearch/main.py b/samples/customsearch/main.py
index 105f891..25c9a84 100644
--- a/samples/customsearch/main.py
+++ b/samples/customsearch/main.py
@@ -19,9 +19,9 @@
 
 
 def main():
-  p = build("customsearch", "v1",
+  service = build("customsearch", "v1",
             developerKey="AIzaSyDRRpR3GS1F1_jKNNM9HCNd2wJQyPG3oN0")
-  res = p.cse().list(
+  res = service.cse().list(
       q='lectures',
       cx='017576662512468239146:omuauf_lfve',
     ).execute()
diff --git a/samples/diacritize/main.py b/samples/diacritize/main.py
index 1935868..979a564 100644
--- a/samples/diacritize/main.py
+++ b/samples/diacritize/main.py
@@ -22,9 +22,9 @@
 
 
 def main():
-  p = build("diacritize", "v1",
+  service = build("diacritize", "v1",
             developerKey="AIzaSyDRRpR3GS1F1_jKNNM9HCNd2wJQyPG3oN0")
-  print p.diacritize().corpus().get(
+  print service.diacritize().corpus().get(
       lang='ar',
       last_letter='false',
       message=u'مثال لتشكيل'
diff --git a/samples/django_sample/buzz/views.py b/samples/django_sample/buzz/views.py
index 5c5a5d1..d8d37c2 100644
--- a/samples/django_sample/buzz/views.py
+++ b/samples/django_sample/buzz/views.py
@@ -20,8 +20,8 @@
     c = Credential.objects.get(id=request.user)
     http = httplib2.Http()
     http = c.credential.authorize(http)
-    p = build("buzz", "v1", http=http)
-    activities = p.activities()
+    service = build("buzz", "v1", http=http)
+    activities = service.activities()
     activitylist = activities.list(scope='@consumption',
                                    userId='@me').execute()
     logging.info(activitylist)
@@ -31,8 +31,8 @@
                 })
 
   except Credential.DoesNotExist:
-    p = build("buzz", "v1")
-    flow = FlowThreeLegged(p.auth_discovery(),
+    service = build("buzz", "v1")
+    flow = FlowThreeLegged(service.auth_discovery(),
                    consumer_key='anonymous',
                    consumer_secret='anonymous',
                    user_agent='google-api-client-python-buzz-django/1.0',
diff --git a/samples/latitude/latitude.py b/samples/latitude/latitude.py
index 4ff5b03..a4d29d2 100644
--- a/samples/latitude/latitude.py
+++ b/samples/latitude/latitude.py
@@ -51,7 +51,7 @@
   http = httplib2.Http()
   http = credentials.authorize(http)
 
-  p = build("latitude", "v1", http=http)
+  service = build("latitude", "v1", http=http)
 
   body = {
       "data": {
@@ -62,7 +62,7 @@
           "altitude": 35
           }
       }
-  print p.currentLocation().insert(body=body).execute()
+  print service.currentLocation().insert(body=body).execute()
 
 if __name__ == '__main__':
   main()
diff --git a/samples/local/main.py b/samples/local/main.py
index 472ac5a..98fb0a4 100644
--- a/samples/local/main.py
+++ b/samples/local/main.py
@@ -29,9 +29,9 @@
 def main():
   http = httplib2.Http()
 
-  p = build("buzz", "v1", http=http, discoveryServiceUrl=DISCOVERY_URI)
-  help(p.activities().list)
-  print p.activities().list(userId='@self', scope='@me', c='foo').uri
+  service = build("buzz", "v1", http=http, discoveryServiceUrl=DISCOVERY_URI)
+  help(service.activities().list)
+  print service.activities().list(userId='@self', scope='@me', c='foo').uri
 
 if __name__ == '__main__':
   main()
diff --git a/samples/localdiscovery/buzz.py b/samples/localdiscovery/buzz.py
index 8b797f7..3fb0c6f 100644
--- a/samples/localdiscovery/buzz.py
+++ b/samples/localdiscovery/buzz.py
@@ -55,12 +55,12 @@
   f.close()
 
   # Construct a service from the local documents
-  p = build_from_document(discovery,
+  service = build_from_document(discovery,
       base="https://www.googleapis.com/",
       future=future,
       http=http,
       developerKey="AIzaSyDRRpR3GS1F1_jKNNM9HCNd2wJQyPG3oN0")
-  activities = p.activities()
+  activities = service.activities()
 
   try:
     # Retrieve the first two activities
diff --git a/samples/moderator/moderator.py b/samples/moderator/moderator.py
index bdada76..080c599 100644
--- a/samples/moderator/moderator.py
+++ b/samples/moderator/moderator.py
@@ -36,7 +36,6 @@
                            user_agent='python-moderator-sample/1.0',
                            domain='anonymous',
                            scope='https://www.googleapis.com/auth/moderator',
-                           #scope='tag:google.com,2010:auth/moderator',
                            xoauth_displayname='Google API Client Example App')
 
     credentials = run(flow, storage)
@@ -44,7 +43,7 @@
   http = httplib2.Http()
   http = credentials.authorize(http)
 
-  p = build('moderator', 'v1', http=http)
+  service = build('moderator', 'v1', http=http)
 
   series_body = {
       'description': 'Share and rank tips for eating healthy and cheap!',
@@ -52,7 +51,7 @@
       'videoSubmissionAllowed': False
       }
   try:
-    series = p.series().insert(body=series_body).execute()
+    series = service.series().insert(body=series_body).execute()
     print 'Created a new series'
 
     topic_body = {
@@ -60,7 +59,7 @@
         'name': 'Ideas',
         'presenter': 'liz'
         }
-    topic = p.topics().insert(seriesId=series['id']['seriesId'],
+    topic = service.topics().insert(seriesId=series['id']['seriesId'],
                               body=topic_body).execute()
     print 'Created a new topic'
 
@@ -72,14 +71,14 @@
           },
         'text': 'Charlie Ayers @ Google'
         }
-    submission = p.submissions().insert(seriesId=topic['id']['seriesId'],
+    submission = service.submissions().insert(seriesId=topic['id']['seriesId'],
         topicId=topic['id']['topicId'], body=submission_body).execute()
     print 'Inserted a new submisson on the topic'
 
     vote_body = {
         'vote': 'PLUS'
         }
-    p.votes().insert(seriesId=topic['id']['seriesId'],
+    service.votes().insert(seriesId=topic['id']['seriesId'],
                      submissionId=submission['id']['submissionId'],
                      body=vote_body)
     print 'Voted on the submission'
diff --git a/samples/oauth2/appengine/main.py b/samples/oauth2/appengine/main.py
index f037bb8..087a136 100644
--- a/samples/oauth2/appengine/main.py
+++ b/samples/oauth2/appengine/main.py
@@ -67,8 +67,8 @@
     else:
       http = httplib2.Http()
       http = credentials.authorize(http)
-      p = build("buzz", "v1", http=http)
-      activities = p.activities()
+      service = build("buzz", "v1", http=http)
+      activities = service.activities()
       activitylist = activities.list(scope='@consumption',
                                      userId='@me').execute()
       path = os.path.join(os.path.dirname(__file__), 'welcome.html')
diff --git a/samples/oauth2/buzz/buzz.py b/samples/oauth2/buzz/buzz.py
index a009517..86ceaf9 100644
--- a/samples/oauth2/buzz/buzz.py
+++ b/samples/oauth2/buzz/buzz.py
@@ -41,9 +41,9 @@
   http = httplib2.Http()
   http = credentials.authorize(http)
 
-  p = build("buzz", "v1", http=http,
+  service = build("buzz", "v1", http=http,
             developerKey="AIzaSyDRRpR3GS1F1_jKNNM9HCNd2wJQyPG3oN0")
-  activities = p.activities()
+  activities = service.activities()
 
   # Retrieve the first two activities
   activitylist = activities.list(
@@ -78,7 +78,7 @@
           }
       }
   item = activitylist['items'][0]
-  comment = p.comments().insert(
+  comment = service.comments().insert(
       userId=item['actor']['id'], postId=item['id'], body=comment_body
       ).execute()
   print 'Added a comment to the new activity'
diff --git a/samples/oauth2/django_sample/buzz/views.py b/samples/oauth2/django_sample/buzz/views.py
index f6903b7..c4ec4d0 100644
--- a/samples/oauth2/django_sample/buzz/views.py
+++ b/samples/oauth2/django_sample/buzz/views.py
@@ -37,8 +37,8 @@
   else:
     http = httplib2.Http()
     http = credential.authorize(http)
-    p = build("buzz", "v1", http=http)
-    activities = p.activities()
+    service = build("buzz", "v1", http=http)
+    activities = service.activities()
     activitylist = activities.list(scope='@consumption',
                                    userId='@me').execute()
     logging.info(activitylist)
diff --git a/samples/oauth2/latitude/latitude.py b/samples/oauth2/latitude/latitude.py
index 56df083..18c7a9d 100644
--- a/samples/oauth2/latitude/latitude.py
+++ b/samples/oauth2/latitude/latitude.py
@@ -38,7 +38,7 @@
   http = httplib2.Http()
   http = credentials.authorize(http)
 
-  p = build("latitude", "v1", http=http)
+  service = build("latitude", "v1", http=http)
 
   body = {
       "data": {
@@ -50,7 +50,7 @@
           }
       }
   try:
-    print p.currentLocation().insert(body=body).execute()
+    print service.currentLocation().insert(body=body).execute()
   except CredentialsInvalidError:
     print 'Your credentials are no longer valid.'
     print 'Please re-run this application to re-authorize.'
diff --git a/samples/oauth2/moderator/moderator.py b/samples/oauth2/moderator/moderator.py
index ae6c6d3..aac3de8 100644
--- a/samples/oauth2/moderator/moderator.py
+++ b/samples/oauth2/moderator/moderator.py
@@ -39,7 +39,7 @@
   http = httplib2.Http()
   http = credentials.authorize(http)
 
-  p = build("moderator", "v1", http=http)
+  service = build("moderator", "v1", http=http)
 
   series_body = {
       "data": {
@@ -48,7 +48,7 @@
         "videoSubmissionAllowed": False
         }
       }
-  series = p.series().insert(body=series_body).execute()
+  series = service.series().insert(body=series_body).execute()
   print "Created a new series"
 
   topic_body = {
@@ -58,7 +58,7 @@
         "presenter": "liz"
         }
       }
-  topic = p.topics().insert(seriesId=series['id']['seriesId'],
+  topic = service.topics().insert(seriesId=series['id']['seriesId'],
                             body=topic_body).execute()
   print "Created a new topic"
 
@@ -72,7 +72,7 @@
         "text": "Charlie Ayers @ Google"
         }
       }
-  submission = p.submissions().insert(seriesId=topic['id']['seriesId'],
+  submission = service.submissions().insert(seriesId=topic['id']['seriesId'],
       topicId=topic['id']['topicId'], body=submission_body).execute()
   print "Inserted a new submisson on the topic"
 
@@ -81,7 +81,7 @@
         "vote": "PLUS"
         }
       }
-  p.votes().insert(seriesId=topic['id']['seriesId'],
+  service.votes().insert(seriesId=topic['id']['seriesId'],
                    submissionId=submission['id']['submissionId'],
                    body=vote_body)
   print "Voted on the submission"
diff --git a/samples/threadqueue/main.py b/samples/threadqueue/main.py
index 63d092d..4570452 100644
--- a/samples/threadqueue/main.py
+++ b/samples/threadqueue/main.py
@@ -100,7 +100,7 @@
   http = httplib2.Http()
   http = credentials.authorize(http)
 
-  p = build("moderator", "v1", http=http)
+  service = build("moderator", "v1", http=http)
 
   series_body = {
       "data": {
@@ -110,7 +110,7 @@
           }
       }
   try:
-    series = p.series().insert(body=series_body).execute()
+    series = service.series().insert(body=series_body).execute()
     print "Created a new series"
 
     for i in range(NUM_ITEMS):
@@ -121,7 +121,7 @@
             "presenter": "me"
             }
           }
-      topic_request = p.topics().insert(seriesId=series['id']['seriesId'],
+      topic_request = service.topics().insert(seriesId=series['id']['seriesId'],
                                         body=topic_body)
       print "Adding request to queue"
       queue.put(topic_request)
diff --git a/samples/translate/main.py b/samples/translate/main.py
index ae39130..94bd234 100644
--- a/samples/translate/main.py
+++ b/samples/translate/main.py
@@ -21,9 +21,9 @@
 
 def main():
 
-  p = build('translate', 'v2',
+  service = build('translate', 'v2',
             developerKey='AIzaSyDRRpR3GS1F1_jKNNM9HCNd2wJQyPG3oN0')
-  print p.translations().list(
+  print service.translations().list(
       source='en',
       target='fr',
       q=['flower', 'car']
