completed from assn3