Create BasePattern class, extract geo_hexagon method into it
Extract geo_sine_waves into its own class