rework const_iterator