Driver refactor

Beginning of the 'complex vlan driver' pull request.
possibly? *shrug*