golang versioning structs