updated with ports