A library to allow transparent changes in the underlying marshalling provider