diff --git a/examples/chromium-fake-render-frame-host/Cargo.toml b/examples/chromium-fake-render-frame-host/Cargo.toml
index 3862f2c..9cc05cd 100644
--- a/examples/chromium-fake-render-frame-host/Cargo.toml
+++ b/examples/chromium-fake-render-frame-host/Cargo.toml
@@ -13,9 +13,9 @@
 edition = "2021"
 
 [dependencies]
-cxx = "1.0.68"
-autocxx = { path = "../..", version="0.22.3" }
+cxx = "1.0.78"
+autocxx = { path = "../..", version = "0.26.0" }
 
 [build-dependencies]
-autocxx-build = { path = "../../gen/build", version="0.22.3" }
-miette = { version="4.3", features = [ "fancy" ] }
+autocxx-build = { path = "../../gen/build", version = "0.26.0" }
+miette = { version = "5", features = ["fancy"] }
diff --git a/examples/chromium-fake-render-frame-host/src/render_frame_host.rs b/examples/chromium-fake-render-frame-host/src/render_frame_host.rs
index 9c2bf51..761c8a8 100644
--- a/examples/chromium-fake-render-frame-host/src/render_frame_host.rs
+++ b/examples/chromium-fake-render-frame-host/src/render_frame_host.rs
@@ -209,7 +209,7 @@
     }
 }
 
-#[is_subclass(superclass("content::WebContentsObserver"))]
+#[subclass(superclass("content::WebContentsObserver"))]
 #[doc(hidden)]
 pub struct RenderFrameHostForWebContents {
     rfh: *mut ffi::content::RenderFrameHost,
diff --git a/examples/cpp_calling_rust/Cargo.toml b/examples/cpp_calling_rust/Cargo.toml
new file mode 100644
index 0000000..2814194
--- /dev/null
+++ b/examples/cpp_calling_rust/Cargo.toml
@@ -0,0 +1,26 @@
+# Copyright 2022 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+# https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+# <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
+# option. This file may not be copied, modified, or distributed
+# except according to those terms.
+
+[package]
+name = "cpp_calling_rust"
+version = "0.1.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+cxx = "1.0.78"
+autocxx = { path = "../..", version="0.26.0" }
+uwuify = "0.2.2"
+textwrap = "0.14"
+fastrand = "1.5.0"
+
+[build-dependencies]
+autocxx-build = { path = "../../gen/build", version="0.26.0" }
+regex = "1.5.4"
+miette = { version="5", features = [ "fancy" ] }
diff --git a/examples/cpp_calling_rust/build.rs b/examples/cpp_calling_rust/build.rs
new file mode 100644
index 0000000..60cc460
--- /dev/null
+++ b/examples/cpp_calling_rust/build.rs
@@ -0,0 +1,21 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+fn main() -> miette::Result<()> {
+    let path = std::path::PathBuf::from("src");
+    let mut b = autocxx_build::Builder::new("src/main.rs", &[&path])
+        .auto_allowlist(true)
+        .build()?;
+    b.flag_if_supported("-std=c++17")
+        .file("src/input.cc")
+        .compile("autocxx-cpp-calling-rust-example");
+    println!("cargo:rerun-if-changed=src/main.rs");
+    println!("cargo:rerun-if-changed=src/input.cc");
+    println!("cargo:rerun-if-changed=src/input.h");
+    Ok(())
+}
diff --git a/examples/cpp_calling_rust/src/input.cc b/examples/cpp_calling_rust/src/input.cc
new file mode 100644
index 0000000..64c446a
--- /dev/null
+++ b/examples/cpp_calling_rust/src/input.cc
@@ -0,0 +1,19 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#include "cxxgen.h"
+#include "input.h"
+
+void jurassic() {
+    rust::Box<Dinosaur> prey = new_dinosaur(false);
+    rust::Box<Dinosaur> predator = new_dinosaur(true);
+    prey->roar();
+    predator->roar();
+    predator->eat(std::move(prey));
+    go_extinct();
+}
\ No newline at end of file
diff --git a/examples/cpp_calling_rust/src/input.h b/examples/cpp_calling_rust/src/input.h
new file mode 100644
index 0000000..206adc6
--- /dev/null
+++ b/examples/cpp_calling_rust/src/input.h
@@ -0,0 +1,16 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#pragma once
+
+#include <cstdint>
+#include <sstream>
+#include <stdint.h>
+#include <string>
+
+void jurassic();
\ No newline at end of file
diff --git a/examples/cpp_calling_rust/src/main.rs b/examples/cpp_calling_rust/src/main.rs
new file mode 100644
index 0000000..3fe6404
--- /dev/null
+++ b/examples/cpp_calling_rust/src/main.rs
@@ -0,0 +1,58 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// This example shows calls from C++ back into Rust. That's really not
+// the main purpose of autocxx, and this support is immature. If you're
+// primarily doing this sort of thing, look into other tools such as
+// cbindgen or cxx.
+
+use autocxx::prelude::*;
+use std::pin::Pin;
+
+include_cpp! {
+    #include "input.h"
+    safety!(unsafe_ffi)
+    generate!("jurassic")
+}
+
+fn main() {
+    ffi::jurassic();
+}
+
+#[autocxx::extern_rust::extern_rust_type]
+pub struct Dinosaur {
+    carnivore: bool,
+}
+
+#[autocxx::extern_rust::extern_rust_function]
+pub fn new_dinosaur(carnivore: bool) -> Box<Dinosaur> {
+    Box::new(Dinosaur { carnivore })
+}
+
+impl Dinosaur {
+    #[autocxx::extern_rust::extern_rust_function]
+    fn roar(&self) {
+        println!("Roar");
+    }
+
+    #[autocxx::extern_rust::extern_rust_function]
+    fn eat(self: Pin<&mut Dinosaur>, other_dinosaur: Box<Dinosaur>) {
+        assert!(self.carnivore);
+        other_dinosaur.get_eaten();
+        println!("Nom nom");
+    }
+
+    fn get_eaten(&self) {
+        println!("Uh-oh");
+    }
+}
+
+#[autocxx::extern_rust::extern_rust_function]
+pub fn go_extinct() {
+    println!("Boom")
+}
diff --git a/examples/llvm/Cargo.toml b/examples/llvm/Cargo.toml
index 4c03db7..3c274ac 100644
--- a/examples/llvm/Cargo.toml
+++ b/examples/llvm/Cargo.toml
@@ -13,9 +13,9 @@
 edition = "2021"
 
 [dependencies]
-cxx = "1.0.68"
-autocxx = { path = "../..", version="0.17.2" }
+cxx = "1.0.78"
+autocxx = { path = "../..", version = "0.26.0" }
 
 [build-dependencies]
-autocxx-build = { path = "../../gen/build", version="0.17.2" }
-miette = { version="4.3", features = [ "fancy" ] }
+autocxx-build = { path = "../../gen/build", version = "0.26.0" }
+miette = { version = "5", features = ["fancy"] }
diff --git a/examples/non-trivial-type-on-stack/Cargo.toml b/examples/non-trivial-type-on-stack/Cargo.toml
index 110bd1b..7af139e 100644
--- a/examples/non-trivial-type-on-stack/Cargo.toml
+++ b/examples/non-trivial-type-on-stack/Cargo.toml
@@ -13,9 +13,9 @@
 edition = "2021"
 
 [dependencies]
-cxx = "1.0.68"
-autocxx = { path = "../..", version="0.22.3" }
+cxx = "1.0.78"
+autocxx = { path = "../..", version = "0.26.0" }
 
 [build-dependencies]
-autocxx-build = { path = "../../gen/build", version="0.22.3" }
-miette = { version="4.3", features = [ "fancy" ] }
+autocxx-build = { path = "../../gen/build", version = "0.26.0" }
+miette = { version = "5", features = ["fancy"] }
diff --git a/examples/pod/Cargo.toml b/examples/pod/Cargo.toml
index 9f4ee5a..e05d261 100644
--- a/examples/pod/Cargo.toml
+++ b/examples/pod/Cargo.toml
@@ -13,9 +13,9 @@
 edition = "2021"
 
 [dependencies]
-cxx = "1.0.68"
-autocxx = { path = "../..", version="0.22.3" }
+cxx = "1.0.78"
+autocxx = { path = "../..", version = "0.26.0" }
 
 [build-dependencies]
-autocxx-build = { path = "../../gen/build", version="0.22.3" }
-miette = { version="4.3", features = [ "fancy" ] }
+autocxx-build = { path = "../../gen/build", version = "0.26.0" }
+miette = { version = "5", features = ["fancy"] }
diff --git a/examples/reference-wrappers/Cargo.toml b/examples/reference-wrappers/Cargo.toml
index cb85e80..93c68ba 100644
--- a/examples/reference-wrappers/Cargo.toml
+++ b/examples/reference-wrappers/Cargo.toml
@@ -13,9 +13,9 @@
 edition = "2021"
 
 [dependencies]
-cxx = "1.0.68"
-autocxx = { path = "../..", version="0.22.3" }
+cxx = "1.0.78"
+autocxx = { path = "../..", version = "0.26.0" }
 
 [build-dependencies]
-autocxx-build = { path = "../../gen/build", version="0.22.3" }
-miette = { version="4.3", features=["fancy"]}
+autocxx-build = { path = "../../gen/build", version = "0.26.0" }
+miette = { version = "5", features = ["fancy"] }
diff --git a/examples/reference-wrappers/build.rs b/examples/reference-wrappers/build.rs
index 64c573d..8e15dd0 100644
--- a/examples/reference-wrappers/build.rs
+++ b/examples/reference-wrappers/build.rs
@@ -10,9 +10,11 @@
     let path = std::path::PathBuf::from("src");
     let mut b = autocxx_build::Builder::new("src/main.rs", &[&path]).build()?;
     b.flag_if_supported("-std=c++14")
-    .file("src/input.cc").compile("autocxx-reference-wrapper-example");
+        .file("src/input.cc")
+        .compile("autocxx-reference-wrapper-example");
 
     println!("cargo:rerun-if-changed=src/main.rs");
     println!("cargo:rerun-if-changed=src/input.h");
+
     Ok(())
 }
diff --git a/examples/reference-wrappers/src/input.h b/examples/reference-wrappers/src/input.h
index 5e3c6e9..dd37dfa 100644
--- a/examples/reference-wrappers/src/input.h
+++ b/examples/reference-wrappers/src/input.h
@@ -18,6 +18,7 @@
     Goat() : horns(0) {}
     void add_a_horn();
     std::string describe() const;
+    uint32_t& get_horns() { return horns; }
 private:
     uint32_t horns;
 };
diff --git a/examples/reference-wrappers/src/main.rs b/examples/reference-wrappers/src/main.rs
index 6bea2ff..ca3e0cd 100644
--- a/examples/reference-wrappers/src/main.rs
+++ b/examples/reference-wrappers/src/main.rs
@@ -23,16 +23,52 @@
 // especially in the absence of the Rust "arbitrary self types"
 // feature.
 
+// Necessary to be able to call methods on reference wrappers.
+// For that reason, this example only builds on nightly Rust.
+#![feature(arbitrary_self_types)]
+
 use autocxx::prelude::*;
+use std::pin::Pin;
 
 include_cpp! {
     #include "input.h"
     // This next line enables C++ reference wrappers
+    // This is what requires the 'arbitrary_self_types' feature.
     safety!(unsafe_references_wrapped)
     generate!("Goat")
     generate!("Field")
 }
 
+impl ffi::Goat {
+    // Methods can be called on a CppRef<T> or &CppRef<T>
+    fn bleat(self: CppRef<Self>) {
+        println!("Bleat");
+    }
+}
+
+trait FarmProduce {
+    // Traits can be defined on a CppRef<T> so long as Self: Sized
+    fn sell(self: &CppRef<Self>)
+    where
+        Self: Sized;
+}
+
+impl FarmProduce for ffi::Goat {
+    fn sell(self: &CppRef<Self>) {
+        println!("Selling goat");
+    }
+}
+
+trait FarmArea {
+    fn maintain(self: CppRef<Self>);
+}
+
+impl FarmArea for ffi::Field {
+    fn maintain(self: CppRef<Self>) {
+        println!("Maintaining");
+    }
+}
+
 fn main() {
     // Create a cxx::UniquePtr as normal for a Field object.
     let field = ffi::Field::new().within_unique_ptr();
@@ -47,21 +83,36 @@
     // However, as soon as we want to pass a reference to the field
     // back to C++, we have to ensure we have no Rust references
     // in existence. So: we imprison the object in a "CppPin":
-    let field = ffi::cpp_pin_uniqueptr(field);
+    let field = CppUniquePtrPin::new(field);
     // We can no longer take Rust references to the field...
     //   let _field_rust_ref = field.as_ref();
     // However, we can take C++ references. And use such references
-    // to call methods...
+    // to call methods in C++. Quite often those methods will
+    // return other references, like this.
     let another_goat = field.as_cpp_ref().get_goat();
     // The 'get_goat' method in C++ returns a reference, so this is
     // another CppRef, not a Rust reference.
+
+    // We can still use these C++ references to call Rust methods,
+    // so long as those methods have a "self" type of a
+    // C++ reference not a Rust reference.
+    another_goat.clone().bleat();
+    another_goat.sell();
+
+    // But most commonly, C++ references are simply used as the 'this'
+    // type when calling other C++ methods, like this.
     assert_eq!(
         another_goat
             .describe() // returns a UniquePtr<CxxString>, there
-                // are no Rust or C++ references involved at this point.
+            // are no Rust or C++ references involved at this point.
             .as_ref()
             .unwrap()
             .to_string_lossy(),
         "This goat has 0 horns."
     );
+
+    // We can even use trait objects, though it's a bit of a fiddle.
+    let farm_area: Pin<Box<dyn FarmArea>> = ffi::Field::new().within_box();
+    let farm_area = CppPin::from_pinned_box(farm_area);
+    farm_area.as_cpp_ref().maintain();
 }
diff --git a/examples/s2/Cargo.toml b/examples/s2/Cargo.toml
index 04524b1..c93706b 100644
--- a/examples/s2/Cargo.toml
+++ b/examples/s2/Cargo.toml
@@ -15,9 +15,9 @@
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 
 [dependencies]
-cxx = "1.0.68"
-autocxx = { path = "../..", version="0.22.3" }
+cxx = "1.0.78"
+autocxx = { path = "../..", version = "0.26.0" }
 
 [build-dependencies]
-autocxx-build = { path = "../../gen/build", version="0.22.3" }
-miette = { version="4.3", features = [ "fancy" ] }
+autocxx-build = { path = "../../gen/build", version = "0.26.0" }
+miette = { version = "5", features = ["fancy"] }
diff --git a/examples/steam-mini/Cargo.toml b/examples/steam-mini/Cargo.toml
index ceb81ff..5162f96 100644
--- a/examples/steam-mini/Cargo.toml
+++ b/examples/steam-mini/Cargo.toml
@@ -15,9 +15,9 @@
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 
 [dependencies]
-cxx = "1.0.68"
-autocxx = { path = "../..", version="0.22.3" }
+cxx = "1.0.78"
+autocxx = { path = "../..", version = "0.26.0" }
 
 [build-dependencies]
-autocxx-build = { path = "../../gen/build", version="0.22.3" }
-miette = { version="4.3", features = [ "fancy" ] }
+autocxx-build = { path = "../../gen/build", version = "0.26.0" }
+miette = { version = "5", features = ["fancy"] }
diff --git a/examples/subclass/Cargo.toml b/examples/subclass/Cargo.toml
index dc93f53..a19ea27 100644
--- a/examples/subclass/Cargo.toml
+++ b/examples/subclass/Cargo.toml
@@ -15,13 +15,13 @@
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 
 [dependencies]
-cxx = "1.0.68"
-autocxx = { path = "../..", version="0.22.3" }
+cxx = "1.0.78"
+autocxx = { path = "../..", version = "0.26.0" }
 uwuify = "0.2.2"
-textwrap = "0.14"
+textwrap = "0.15"
 fastrand = "1.5.0"
 
 [build-dependencies]
-autocxx-build = { path = "../../gen/build", version="0.22.3" }
+autocxx-build = { path = "../../gen/build", version = "0.26.0" }
 regex = "1.5.4"
-miette = { version="4.3", features = [ "fancy" ] }
+miette = { version = "5", features = ["fancy"] }
diff --git a/examples/subclass/src/main.rs b/examples/subclass/src/main.rs
index 2841598..095abd4 100644
--- a/examples/subclass/src/main.rs
+++ b/examples/subclass/src/main.rs
@@ -34,7 +34,7 @@
 // See the main function at the bottom for how this subclass
 // is instantiated.
 
-#[is_subclass(superclass("MessageDisplayer"))]
+#[subclass(superclass("MessageDisplayer"))]
 #[derive(Default)]
 pub struct UwuDisplayer {}
 
@@ -60,7 +60,7 @@
 // for now, at least, we can't hold non-trivial C++ objects on the Rust stack.)
 // All the boxing and unboxing is done automatically by autocxx layers.
 
-#[is_subclass(superclass("MessageProducer"))]
+#[subclass(superclass("MessageProducer"))]
 #[derive(Default)]
 pub struct QuoteProducer;
 
@@ -93,7 +93,7 @@
 // doing stuff. In C++ you'd probably need a const_cast. Here we use
 // interior mutability.
 
-#[is_subclass(superclass("MessageDisplayer"))]
+#[subclass(superclass("MessageDisplayer"))]
 pub struct BoxDisplayer {
     message_count: RefCell<usize>,
 }
@@ -103,7 +103,7 @@
         Self::new_rust_owned(Self {
             // As we're allocating this class ourselves instead of using [`Default`]
             // we need to initialize the `cpp_peer` member ourselves. This member is
-            // inserted by the `#[is_subclass]` annotation. autocxx will
+            // inserted by the `#[subclass]` annotation. autocxx will
             // later use this to store a pointer back to the C++ peer.
             cpp_peer: Default::default(),
             message_count: RefCell::new(1usize),
diff --git a/examples/subclass/src/messages.h b/examples/subclass/src/messages.h
index 02ff248..bbf6118 100644
--- a/examples/subclass/src/messages.h
+++ b/examples/subclass/src/messages.h
@@ -12,7 +12,6 @@
 #pragma once
 
 #include <string>
-#include <memory>
 
 class MessageProducer {
 public:
