finished main ex28, no extra credit