split the port signalling in prep for different widths
update for 3:1 port size
minor refactoring