finished assignment3