Final exercise solutions