Assignment 5 from DFI 2.