Data science

I tried to address all comments/feedback from Joe and Sophia from last review.
Also tried to separate tests into happy/sad/error - not much material there.

additionally, is this `rescue` clause required? if you leave it out and the `File.read` fails, it will raise an exception anyway.