use anonymous struct instead