cleaned up and added some fixes to base driver and phsen driver
finished creating base driver, old unit tests now pass, but I still need to move some of the test code to a base test_driver module