vport refactor, passing tests