diff --git a/samples/api-python-client-doc/main.py b/samples/api-python-client-doc/main.py
index 1315c7f..df0209a 100755
--- a/samples/api-python-client-doc/main.py
+++ b/samples/api-python-client-doc/main.py
@@ -17,7 +17,6 @@
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 
-
 import httplib2
 import inspect
 import os
diff --git a/samples/buzz/buzz.py b/samples/buzz/buzz.py
index 74ee3a4..3d657b9 100644
--- a/samples/buzz/buzz.py
+++ b/samples/buzz/buzz.py
@@ -1,12 +1,36 @@
 #!/usr/bin/python2.4
 # -*- coding: utf-8 -*-
 #
-# Copyright 2010 Google Inc. All Rights Reserved.
+# Copyright (C) 2010 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
 
 """Simple command-line example for Buzz.
 
-Command-line application that retrieves the users
-latest content and then adds a new entry.
+Command-line application that retrieves the users latest content and then adds
+a new entry.
+
+Usage:
+  $ python buzz.py.py
+
+You can also get help on all the command-line flags the program understands
+by running:
+
+  $ python buzz.py.py --help
+
+To get detailed log output run:
+
+  $ python buzz.py.py --logging_level=DEBUG
 """
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
@@ -23,35 +47,55 @@
 from oauth2client.tools import run
 
 FLAGS = gflags.FLAGS
+
+# Set up a Flow object to be used if we need to authenticate. This
+# sample uses OAuth 2.0, and we set up the OAuth2WebServerFlow with
+# the information it needs to authenticate. Note that it is called
+# the Web Server Flow, but it can also handle the flow for native
+# applications <http://code.google.com/apis/accounts/docs/OAuth2.html#IA>
+# The client_id client_secret are copied from the Identity tab on
+# the Google APIs Console <http://code.google.com/apis/console>
 FLOW = OAuth2WebServerFlow(
     client_id='433807057907.apps.googleusercontent.com',
     client_secret='jigtZpMApkRxncxikFpR+SFg',
     scope='https://www.googleapis.com/auth/buzz',
     user_agent='buzz-cmdline-sample/1.0')
 
+# The gflags module makes defining command-line options easy for
+# applications. Run this program with the '--help' argument to see
+# all the flags that it understands.
 gflags.DEFINE_enum('logging_level', 'ERROR',
     ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'],
     'Set the level of logging detail.')
 
 
 def main(argv):
+  # Let the gflags module process the command-line arguments
   try:
     argv = FLAGS(argv)
   except gflags.FlagsError, e:
     print '%s\\nUsage: %s ARGS\\n%s' % (e, argv[0], FLAGS)
     sys.exit(1)
 
+  # Set the logging according to the command-line flag
   logging.getLogger().setLevel(getattr(logging, FLAGS.logging_level))
 
+  # If the Credentials don't exist or are invalid run through the native client
+  # flow. The Storage object will ensure that if successful the good
+  # Credentials will get written back to a file.
   storage = Storage('buzz.dat')
   credentials = storage.get()
   if credentials is None or credentials.invalid == True:
     credentials = run(FLOW, storage)
 
+  # Create an httplib2.Http object to handle our HTTP requests and authorize it
+  # with our good Credentials.
   http = httplib2.Http()
   http = credentials.authorize(http)
 
-  # Build the Buzz service
+  # Build a service object for interacting with the API. Visit
+  # the Google APIs Console <http://code.google.com/apis/console>
+  # to get a developerKey for your own application.
   service = build("buzz", "v1", http=http,
             developerKey="AIzaSyDRRpR3GS1F1_jKNNM9HCNd2wJQyPG3oN0")
   activities = service.activities()
diff --git a/samples/moderator/moderator.py b/samples/moderator/moderator.py
index be62a1f..f77534a 100644
--- a/samples/moderator/moderator.py
+++ b/samples/moderator/moderator.py
@@ -1,7 +1,19 @@
 #!/usr/bin/python2.4
 # -*- coding: utf-8 -*-
 #
-# Copyright 2010 Google Inc. All Rights Reserved.
+# Copyright (C) 2010 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
 
 """Simple command-line example for Moderator.
 
@@ -82,8 +94,11 @@
   http = httplib2.Http(cache=".cache")
   http = credentials.authorize(http)
 
-  # Build a service object for interacting with the API.
-  service = build("moderator", "v1", http=http)
+  # Build a service object for interacting with the API. Visit
+  # the Google APIs Console <http://code.google.com/apis/console>
+  # to get a developerKey for your own application.
+  service = build("moderator", "v1", http=http,
+            developerKey="AIzaSyDRRpR3GS1F1_jKNNM9HCNd2wJQyPG3oN0")
 
   # Create a new Moderator series.
   series_body = {
