null better fit nil than undefined
complete port server
add doc about the log function