added event repeating functionality