add repeating generator, and tests