first part of assignment3