start the implementation of the generic pattern generator