Driver refactor

Beginning of the 'complex vlan driver' pull request.
I put a note at the top of the file.