newly ported functions