public function addThread($user_id, $recipient_name, $subject, $body)
    {

        if (!is_numeric($user_id) || 0 >= $user_id) {
            throw new InvalidArgumentException(
                "Api::addThread user_id field should be positive integer");
        }
        if (!is_string($recipient_name) || 0 >= strlen($recipient_name)) {
            throw new InvalidArgumentException("addThread subject field needs to be a non-empty string");
        }
        if (!is_string($subject) || 0 >= strlen($subject)) {
            throw new InvalidArgumentException("addThread subject field needs to be a non-empty string");
        }

        if (!is_string($body) || 0 >= strlen($body)) {
            throw new InvalidArgumentException("addThread body field needs to be a non-empty string");
        }

        /* @var $command \Guzzle\Service\Command\AbstractCommand */
        $command = $this->client->getCommand(
            'AddThread',
            array('id'=>$user_id, 'message'=>array('recipient'=>$recipient_name,'subject'=>$subject,'body'=>$body)));

        return $this->executeCommand($command);
    }