solution for final exercise 14