The purpose of the collector is to collect, not to have all the logic defined in it. This is what we call "programming" :)
(et toc.)