void collect()
 {
     if( !m_finalized && m_first_group )
     {
         m_first_group->collect( m_option_map );
     }
 }
 void collect( OptionMap &m )
 {
     if( m_first_option )
     {
         m_first_option->collect( m );
     }
     if( m_next_group )
     {
         m_next_group->collect(m);
     }
 }