Went overboard - now can use a constructor or a syntheic service to create ports