Started refactor so that the driver doesn't have to be passed all over the show.
Finished refactor...hopefully