add get_port function