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.

it's more common to use `merge!` -- it alerts a reader that this is a destructive operation upon the hash