strange function on struct