Uses empty struct values instead of pointers.

According to:
https://groups.google.com/forum/#!topic/golang-nuts/lb4xLHq7wug, this
is preferred because empty structs have zero size.