Updated providers to traits to allow implementations to declare both