Use ReaderT.