revised assignment3