add godoc
add comments