If you're not yet comfortable with Go's type system and/or interfaces it can be a surprisingly difficult thing to wrap your head around. Read this post to learn how it works.