Exchangeable configurations through ConfigurationProviders. resolves #3