Isn't the Ruby thing to let the duck typing handle the interface?  Or at least ask the `provider` if it responds to the needed methods?