completed ProgAssign2