Finished program2