Index: src/ResolvExpr/CurrentObject.cc
===================================================================
--- src/ResolvExpr/CurrentObject.cc	(revision b04a408f68936adf342df27ff266627eb794213f)
+++ src/ResolvExpr/CurrentObject.cc	(revision 84e8423d8434e82dcc55cd1375d180d739d9cd88)
@@ -62,14 +62,30 @@
 		virtual ~MemberIterator() {}
 
+		/// walks the current object using the given designators as a guide
 		virtual void setPosition( std::list< Expression * > & designators ) = 0;
+
+		/// retrieve the list of possible Type/Designaton pairs for the current position in the currect object
 		virtual std::list<InitAlternative> operator*() const = 0;
+
+		/// true if the iterator is not currently at the end
 		virtual operator bool() const = 0;
+
+		/// moves the iterator by one member in the current object
 		virtual MemberIterator & bigStep() = 0;
+
+		/// moves the iterator by one member in the current subobject
 		virtual MemberIterator & smallStep() = 0;
+
+		/// the type of the current object
 		virtual Type * getType() = 0;
+
+		/// the type of the current subobject
 		virtual Type * getNext() = 0;
 
+		/// printing for debug
 		virtual void print( std::ostream & out, Indenter indent ) const = 0;
 
+		/// helper for operator*; aggregates must add designator to each init alternative, but
+		/// adding designators in operator* creates duplicates.
 		virtual std::list<InitAlternative> first() const = 0; // should be protected
 	};
@@ -354,6 +370,5 @@
 				}
 			}
-			// if ( curMember == std::next( decl->get_members().begin(), 1 ) ) { // xxx - this never triggers because curMember is incremented immediately on construction
-			if ( atbegin ) { // xxx - this never triggers because curMember is incremented immediately on construction
+			if ( atbegin ) {
 				// xxx - what about case of empty struct??
 				// only add self if at the very beginning of the structure
@@ -389,5 +404,4 @@
 			return *this;
 		}
-		virtual std::list<InitAlternative> first() const { return std::list<InitAlternative>{}; }
 	};
 
