Add dynamic port support