code for assignment 2