Created abstract driver.  Error handling moved to gnublin_driver