public function pushMessage(/** polymorphic **/)
    {
      $args = func_get_args();
      $args = $args[0];
      $out = array();
      $cnt = 0;

      foreach ($args as $arg) {
          $out[self::$args[$cnt]] = $arg; 
          $cnt ++;
      }

      $message = Ensure::Input($out);

      $this->messages[] = $message->get();
    }