Added the Driver class that has the main entry point