pattern Iterator