Index: framspy/deterministic.sim
===================================================================
--- framspy/deterministic.sim	(revision 1151)
+++ framspy/deterministic.sim	(revision 1158)
@@ -10,8 +10,8 @@
 
 sim_params:
+# no need to evaluate a creature many times:
+evalcount:1
 # always central location in the world:
 placement:1
-# no need to evaluate many times:
-evalcount:1
 # no random initialization of state in neurons:
 randinit:0.0
Index: framspy/frams-test-props.py
===================================================================
--- framspy/frams-test-props.py	(revision 1151)
+++ framspy/frams-test-props.py	(revision 1158)
@@ -1,2 +1,4 @@
+"""An example of iterating through the properties of an ExtValue object and printing their characteristics."""
+
 import frams
 import sys
@@ -4,43 +6,36 @@
 frams.init(*(sys.argv[1:]))
 
-def printSingleProperty(v,p):
-	print('  %s "%s" type="%s" flags=%d group=%d help="%s"' % (v._propId(p),v._propName(p),v._propType(p),v._propFlags(p),v._propGroup(p),v._propHelp(p)))
+
+def printSingleProperty(v, p):
+	print(' * %s "%s" type="%s" flags=%d group=%d help="%s"' % (v._propId(p), v._propName(p), v._propType(p), v._propFlags(p), v._propGroup(p), v._propHelp(p)))
 
 
 def printFramsProperties(v):
-	N=v._propCount()
-	G=v._groupCount()
-	if G<2:
-		
-		#no groups, simply iterate all props
-		
-		print("'%s' has %d properties" % (v._class(),v._propCount()))
+	N = v._propCount()
+	G = v._groupCount()
+	print("======================= '%s' has %d properties in %d group(s). =======================" % (v._class(), N, G))
+	if G < 2:
+		# No groups, simply iterate all properties
 		for p in range(v._propCount()):
-			printSingleProperty(v,p)
-		
+			printSingleProperty(v, p)
 	else:
-		
-		#iterate through groups and iterate all props in a group.
-		#why the distinction?
-		#first, just to show there are two ways. there is always at least one
-		#group so you can always get all props by iterating the group.
-		#second, groups actually do not exist as collections. iterating in
-		#groups works by checking all properties on each iteration and
-		#testing which one is the m-th property of the group.
-		#these inefficient _memberCount() and _groupMember() are provided
-		#for the sake of completeness but don't use them without good reason ;-)
-		
-		print("'%s' has %d properties in %d group(s)" % (v._class(),v._propCount(),v._groupCount()))
+		# Iterate through groups and iterate all props in a group.
+		# Why the distinction?
+		# First, just to show there are two ways. There is always at least one
+		# group so you can always get all properties by iterating the group.
+		# Second, groups actually do not exist as collections. Iterating in
+		# groups works by checking all properties on each iteration and
+		# testing which one is the m-th property of the group!
+		# So these inefficient _memberCount() and _groupMember() are provided
+		# for the sake of completeness, but don't use them without a good reason ;-)
 		for g in range(G):
-			print('\n=========== Group #%d: %s ==========' % (g,v._groupName(g)))
+			print('\n------------------- Group #%d: %s -------------------' % (g, v._groupName(g)))
 			for m in range(v._memberCount(g)):
-				p=v._groupMember(g,m)
-				printSingleProperty(v,p)
-			print('========================\n')
-
-
+				p = v._groupMember(g, m)
+				printSingleProperty(v, p)
+	print('\n\n')
 
 
 printFramsProperties(frams.World)
-		
-printFramsProperties(frams.GenePools[0].add('X'))
+
+printFramsProperties(frams.GenePools[0].add('X'))  # add('X') returns a Genotype object
Index: framspy/run-evolalg-examples.cmd
===================================================================
--- framspy/run-evolalg-examples.cmd	(revision 1151)
+++ framspy/run-evolalg-examples.cmd	(revision 1158)
@@ -7,13 +7,14 @@
 
 
-rem simple one-criterion evolution
+
+rem simple one-criterion evolution from minimalistic example source (examples.standard)
 python -m evolalg.examples.standard          -path %DIR_WITH_FRAMS_LIBRARY%   -opt numneurons
 
 
-rem "chaining" .sim files, subsequent files overwrite selected parameters
+rem as above but "chaining" .sim files, subsequent files overwrite selected parameters
 python -m evolalg.examples.standard          -path %DIR_WITH_FRAMS_LIBRARY%   -sim eval-allcriteria.sim;deterministic.sim;sample-period-longest.sim    -opt velocity
 
 
-rem hard limit on the number of parts
+rem simple one-criterion evolution but more options available in examples.niching_novelty, here: hard limit on the number of parts and debugging messages
 python -m evolalg.examples.niching_novelty   -path %DIR_WITH_FRAMS_LIBRARY%   -opt velocity   -max_numparts 6   -debug
 
Index: framspy/sample-period-longest.sim
===================================================================
--- framspy/sample-period-longest.sim	(revision 1151)
+++ framspy/sample-period-longest.sim	(revision 1158)
@@ -1,4 +1,4 @@
-# Extremely high "performance sampling period" (likely longer than lifespan) in the first population
-# to measure distance and velocity rectilinearly. Such a long period results in two sampling events: at birth and at death.
+# Extremely high "performance sampling period" in the first population to measure distance and velocity rectilinearly.
+# Such a long period (likely longer than lifespan) results in two sampling events: at birth and at death.
 #
 # Before loading this file, load base settings, e.g. "eval-allcriteria.sim".
