port module implement