Splitting out the Patterner class