Assignment 4 from DFI 2.