a constant for easy switching between the propagation generation modes +
some code cleanup, minor optimizations for hierarchies