writing plugins
merge monad