finish part of assignment3