I really like this - I think the inversion from declaring params to declaring provided is the right thing (tm).