public function delete(VO $vo)
    {
        foreach ($this->stores as $storeName => $store) {
            if (!$this->isPrimaryStore($storeName)) {
                $ret = $store->delete($vo);
                if (!$ret) {
                    throw new \RuntimeException(sprintf("Couldn't remove object from non-primary store, aborting"), 500);
                }
            }
        }

        $primaryStore = $this->getPrimaryStore();
        $success = $primaryStore->delete($vo);

        if (!$success) {
            throw new \RuntimeException(sprintf("Couldn't remove object from primary store, aborting"), 500);
        }

        return true;
    }