update port implementation