Add Port structure and builder