for assignment 3