repetition functionality complete