vport refactor