public function setBackend($backend)
    {
        if (!is_string($backend)) {
            throw new Exception\InvalidArgumentException(__METHOD__ . " backend parameter must be a valid string.");
        }

        if (!in_array($backend, $this->supported_backends)) {
            $valid_backends = implode(',', $this->supported_backends);
            throw new Exception\UnsupportedBackendException(__METHOD__ . " Backend '$backend' is not supported, supported backends are '$valid_backends'''");
        }
        $this->backend = $backend;
        return $this;
    }