add changing port support