implement by golang. add comments
rename
change buffer length
support TLE