make Application.ports a frozenset by default