added optional port argument to server