assignment 2 #2 and #3