Split provider/wrapper code out into it's own library.