assignment 2 #4 #5 #6