followed rubric this time, updated exception handling