   query = {} if not query
   wishes = Wishes.find(_.extend(query, notDeletedPred), options)
   # This can be improved to add only the users that commented or voted or created on the relevant wishes
-  users = User.find({}, {fields: userFields})
+  users = User.find({}, {fields: userFields()})
   [wishes, users]
 
 Meteor.publish "users",(query, options) ->
   options = {} if not options
   query = {} if not query
-  User.find(query, _.extend(options, {fields: userFields}))
+  User.find(query, _.extend(options, {fields: userFields()}))
 
 speakerPred = 'profile.submitted': true
 Meteor.publish "speakers", (query, options) ->
   options = {} if not options
   query = {} if not query
-  users = User.find(_.extend(query, speakerPred), _.extend(options, {fields: userFields}))
+  users = User.find(_.extend(query, speakerPred), _.extend(options,
+    {fields: userFields('profile.bio': 1, 'profile.trackRecord': 1)}))
   userIds = users.map((u)->u._id)
   proposals = Proposal.find(_.extend({speaker_ids: {$in: userIds}}, notDeletedPred),
                             {fields: proposalFields(@userId)})

  query = {} if not query
  proposals = Proposal.find(query, _.extend(options, {fields: proposalFields(@userId)}))
  userIds = _.flatten(proposals.map((p) -> p.speaker_ids))
  users = User.find({_id: $in: userIds}, {fields: userFields})
  [proposals, users]

Meteor.publish "agenda", ->

userFields = (fields) ->
  baseline =
    roles: 1
    'profile.editing': 1
    'profile.name': 1
    'profile.role': 1
    'profile.submitted': 1
    'services.google.picture': 1
    'services.google.email': 1
    'services.facebook.id': 1
    'services.facebook.email': 1
    'services.twitter.profile_image_url': 1
    'services.github.picture': 1
    'services.github.email': 1
  _.extend(baseline, fields)



# removeBio = (userFields()) ->
#   cloned = _.extend({}, userFields())
#   _.extend(cloned, {'profile.bio': 0})

proposalFields = (userId, minimal)->
  fields =
