is it really useful to be able to pass components?

I would not add the param and hack a components_ attributes if needed.

because otherwise the fit does not make much sense right?