The eventual goal here is that the pbdrv functions will be the absolute minimim needed to do the actual I/O to the hardware. Everything else should be implemented in the main library.