I don't really understand why you didn't use a (possibly private) struct for this, the queue's logic is awfully implicit now.