modified assignment2