Driver refactor

Beginning of the 'complex vlan driver' pull request.