Golang Value & Pointer Receivers Explained