I try to follow rule of a thumb "everything that is not used by other package code and is not required by user code should be private". defaultPort feel like implementation detail, what is the point in exposing it?