* Refactory collect()