one port for each is more work, but more robust