Updated to include the completed exercise 4.