code: public void addPayload(Payload payload) {
  		// TODO: figure out a better way of detecting new events
  		if (payload instanceof EventPayload) {
  			notifyEventGenerated((EventPayload) payload);
  		}
  
  		payload.setLocalConversationIdentifier(notNull(getLocalIdentifier()));
  		payload.setConversationId(getConversationId());
  		payload.setToken(getConversationToken());
  		payload.setEncryptionKey(getEncryptionKey());
  		payload.setAuthenticated(isAuthenticated());
  		payload.setSessionId(getSessionId());
  
  		// TODO: don't use singleton here
  		ApptentiveInternal.getInstance().getApptentiveTaskManager().addPayload(payload);
  	}
docs: region Payloads