rewrite and supports latest go-lang