Driver has basic infrastructure

Needs to be fleshed out, some design decisions are subject to change