added new spec.provided_by function