for assignment2