Assignment 3 from DFI 2.