new monad runner, handle empty lines