added iterator and collection