Further clean up and better abstractions for cross-platform providers