examples and exercises from "Programming in Go"