finish assignment3