Assignments #19, #19b, #20, #21, #27