Completed exercise

Very light on the comments, could use more streamlining, but performs
requested tasks as required