You could use my Generic Attribute Driver I wrote a few years back as a starting point or at least a reference for how you could setup some elements of the driver you want to create, if you are interested in writing one yourself. That's not to say my code is a model of good practices or methods to develop something like this, but it will hopefully give you a start.