Eventually we'll extract these Provider classes & helpers into a reusable library.