Removing silliness
Fleshing out the API -- idiomatic haskell still appears mildly difficult for me but this API feels better than my other attempts, the big one will be the observe function
Adding test dir