Move default value to collector itself from fatory

More over, it fixes a bug if user use factory without options, because
factory send null instead of nothing which break everythinh.

And then, it make the collecter easier to re-use