proper go structure