Full-Rewrite on go language