Collection class

and some traits