Worth combining the start and end port rules into a "portRule", or not enough duplication to worry about that..?