protected function executeImpl($params) {
		/**
		 * Get a reference to the log.
		 */
		$log = $this->log;
		
		/**
		 * Output some debug info to log file.
		 */
		$log->debug ( "CmdHello: Parameters received: " . implode ( ",", $params ) );
		
		/**
		 * Preparing the result text and validating parameters.
		 */
		$resultText = "[requested by " . $this->post ["user_name"] . "]";
		if (empty ( $params )) {
			$resultText .= " You must specify at least one parameter!";
		} else {
			$resultText .= " CmdHello Result: ";
		}
		
		/**
		 * Preparing attachments.
		 */
		$attachments = array ();
		
		/**
		 * Cycling through parameters, just for fun.
		 */
		foreach ( $params as $param ) {
			$log->debug ( "CmdHello: processing parameter $param" );
			
			/**
			 * Preparing one result attachment for processing this parameter.
			 */
			$attachment = new SlackResultAttachment ();
			$attachment->setTitle ( "Processing $param" );
			$attachment->setText ( "Hello $param !!" );
			$attachment->setFallback ( "fallback text." );
			$attachment->setPretext ( "pretext here." );
			$attachment->setColor ( "#00ff00" );
			
			/**
			 * Adding some fields to the attachment.
			 */
			$fields = array ();
			$fields [] = SlackResultAttachmentField::withAttributes ( "Short Field", "Short Field Value" );
			$fields [] = SlackResultAttachmentField::withAttributes ( "This is a long field", "this is a long Value", FALSE );
			$attachment->setFieldsArray ( $fields );
			
			/**
			 * Adding the attachment to the attachments array.
			 */
			$attachments [] = $attachment;
		}
		
		$this->setResultText ( $resultText );
		$this->setSlackResultAttachments ( $attachments );
	
	/**
	 * If you want more control, you can create your own instance of
	 * SlackResult and override $this->result with your own object.
	 */
	}