Move reader under monad subdir
Remove unnecessary Clone bounds
Rename 'within' to 'local'
Cleanup
Add state monad