collection constuctor implemented