code: function(arn, msg, args) {
          var params = {
              Message: typeof(msg) !== 'string' ? JSON.stringify(msg) : {},
              MessageStructure: 'json',
              TargetArn: arn
          };
  
          //** currently in testing, limited to APNS/APNS_SANDBOX
          if(typeof(msg) === 'string')
              params.Message = messageBuilder(msg, args)
                  .platforms(this.platforms)
                  .stringify()
  
          return this.svc.publish(params);
      }
docs: sends a message to the target endpoint.  accepts either a string message, or a message object.  if
  an object is provided, it is assumed to include the message configuration for each platform intended.
  use an object if you intend to update the badge/count, play a sound, etc.  Make sure each
  platforms message object is in string format (JSON.stringify).  see here for more details on targetting
  multiple platforms with a single message:
  
  http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-custommessage.html
  
  also, and object of arguments may be specified, that based on the platform, will be attached to the
  paylod; this can be used for routing, actions, etc
  
  @param {String} arn the EndpointArn of the endpoint that should receive the message
  @param {String} msg the message string to send, or a message object
  @param {Object} args additional arguments to be mixed in with the message object