modified assignment3