added unfinished Go version