properly order struct