If your case is let several structs use a pin as you said, you would just clone the pin, or use the freestanding fn without ownership, eg: ```rust let my_pin = Pin::new(Port::A, 0); let struct_a = Struct { pin: my_pin.clone() } let struct_b = Struct { pin: my_pin() } // or not own anything: impl Struct { fn set_pin(&self) { gpio::set_low(self.port, self.pin); } } ```