Refactored: Now the readers are just type aliases
Added monad instances: TODO- move them to a better place / better definitions?
Added scaffolding and dependencies for the tests