various structures in golang