modified code to match http://golang.org/doc/go1