finished first redraft, need to add exception handling