strict successorgenerator instead of weak