change to use foldM.
Add my read function that like readEither. But it adds detailed error message.
Change to use liftM.