use struct_surface and ternary operator to merge