latest exercise: 114 (not finished)