hands on from https://golang.org/doc/articles/wiki/