Refactored: simpler monad use
Refactored, separated reader in own file and removed unused imports