updated assignment3