Overhauled to use a dictionary of exercises.