gopher implementation in go