Cleanup drivers directory

The drivers directory had many different classes thrown together. This is the first step in cleaning it up. I created a couple of sub folders based on inheritance.