updated assignment 4