implement repetition