Class Data has now only private members and is thus accessible only to friend class Pattern
made constructors explicit
added private copy ctors and assignement operators to Pattern and Visualizer classes to prevent accidental copying