@geemus @tokengeek This PR has added a DSL to help facilitate adding a common abstraction for providers while keeping the high level logic at more generic level. You can see the concrete implementation in https://github.com/fog/fog/pull/2971.

What are your thoughts on this approach?