refactor validation under constructor in Collection