completes assignment 3