refactor write and decision logic into a separate TransportPlugin class
- deprecate old API that created a new config for each method call