avoid struct boxing