/** \brief FD of the Lock file we acquire in Setup (if any) */
    int LockFD;
    /** \brief dpointer placeholder (for later in case we need it) */
-   void *d;
+   void * const d;
 
    public:
    
    friend class pkgAcquire::Worker;
 
    /** \brief dpointer placeholder (for later in case we need it) */
-   void *d;
+   void * const d;
 
    /** \brief The next queue in the pkgAcquire object's list of queues. */
    Queue *Next;
    protected:
 
    /** \brief A single item placed in this queue. */
-   struct QItem : public WeakPointable
+   struct QItem : public ItemDesc
    {
       /** \brief The next item in the queue. */
       QItem *Next;
       /** \brief The worker associated with this item, if any. */
       pkgAcquire::Worker *Worker;
 
-      /** \brief The URI from which to download this item. */
-      std::string URI;
-      /** \brief A description of this item. */
-      std::string Description;
-      /** \brief A shorter description of this item. */
-      std::string ShortDesc;
       /** \brief The underlying items interested in the download */
       std::vector<Item*> Owners;
-      // both, backward compatibility and easy access as syncing is interal
-      Item * Owner;
 
       typedef std::vector<Item*>::const_iterator owner_iterator;
 
 class pkgAcquire::UriIterator
 {
    /** \brief dpointer placeholder (for later in case we need it) */
-   void *d;
+   void * const d;
 
    /** The next queue to iterate over. */
    pkgAcquire::Queue *CurQ;
 struct pkgAcquire::MethodConfig
 {
    /** \brief dpointer placeholder (for later in case we need it) */
-   void *d;
+   void * const d;
    
    /** \brief The next link on the acquire method list.
     *
 class pkgAcquireStatus
 {
    /** \brief dpointer placeholder (for later in case we need it) */
-   void *d;
+   void * const d;
 
    protected: