refactoring
adds port arg