golang top tip: Return an interface rather than a private type. Return a public type rather than an interface.

 — @davecheney