fully generates pattern