added repetition and exceptions.