refactor: abstract ReaderT as BenchM monad