Main driver class