updated assignment4