Implement by golang