now supporting cutom port via argv