make m_configuration a pointer.
refactor LexicalReordering