with itertools instead