///////////////////////////////////////////////////////
        //
        // Private Methods
        //
        ///////////////////////////////////////////////////////

        // Removes the first node in the given list and clears its data
        private void DestroyFrontOfList(ContainerList list)
        {
            if (list.Size <= 0)
            {
                return;
            }

            ContainerNode toBeDeleted = list.PopFront();

            toBeDeleted.Reset();
            toBeDeleted.BaseReset();
            toBeDeleted.next = null;
            toBeDeleted.prev = null;
            toBeDeleted      = null;
        }
        /// <summary>
        ///     Takes a node from active list, clears data, and moves it to reserves
        /// </summary>
        /// <param name="query"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        protected ContainerNode BaseDetach(Enum query, uint id)
        {
            // Look for the node to recycle
            ContainerNode queriedNode = this.BaseFind(query, id, this.activeList);

            // Give up if node wasn't found
            if (queriedNode == null)
            {
                return(null);
            }

            // Clear data
            queriedNode.BaseReset();

            // Move it from the active to reserve
            this.Move(queriedNode, this.activeList, this.reservedList);

            return(queriedNode);
        }