struct 2 + impl