split Ports and subclasses into a separate pair of files