finish (mostly) listen vs publish page rendering

here's the remote_api code i used to backfill the features field for all existing sources to ['listen']:

import facebook, twitter, instagram, googleplus

# populate field
for cls in (facebook.FacebookPage, twitter.Twitter, googleplus.GooglePlusPage,
            instagram.Instagram):
  for s in cls.query():
    print s.dom_id()
    s.features = ['listen']
    s.put()

# confirm
for cls in (facebook.FacebookPage, twitter.Twitter, googleplus.GooglePlusPage,
            instagram.Instagram):
  for s in cls.query().iter():
    print s.features
drop Comment class and remote_api code (comment) for migrating to Response

remote_api code for deleting Comment entities in the datastore:

 # confirm that there's a matching Response for each Comment
print ndb.Query(kind='Comment').count()
print len(ndb.get_multi([ndb.Key('Response', k.id())
  for k in ndb.Query(kind='Comment').iter(keys_only=True)]))

 # delete the Comments
ndb.delete_multi(ndb.Query(kind='Comment').iter(keys_only=True))
 # ...repeat as necessary