diff --git a/libs/binder/ndk/include_ndk/android/binder_interface_utils.h b/libs/binder/ndk/include_ndk/android/binder_interface_utils.h
index 6782ce0..5a4196a 100644
--- a/libs/binder/ndk/include_ndk/android/binder_interface_utils.h
+++ b/libs/binder/ndk/include_ndk/android/binder_interface_utils.h
@@ -37,12 +37,18 @@
 
 namespace ndk {
 
-// analog using std::shared_ptr for RefBase-like semantics
+/**
+ * analog using std::shared_ptr for internally held refcount
+ */
 class SharedRefBase {
 public:
     SharedRefBase() {}
     virtual ~SharedRefBase() {}
 
+    /**
+     * A shared_ptr must be held to this object when this is called. This must be called once during
+     * the lifetime of this object.
+     */
     std::shared_ptr<SharedRefBase> ref() {
         std::shared_ptr<SharedRefBase> thiz = mThis.lock();
 
@@ -51,6 +57,9 @@
         return thiz;
     }
 
+    /**
+     * Convenience method for a ref (see above) which automatically casts to the desired child type.
+     */
     template <typename CHILD>
     std::shared_ptr<CHILD> ref() {
         return std::static_pointer_cast<CHILD>(ref());
@@ -70,13 +79,17 @@
     std::weak_ptr<SharedRefBase> mThis;
 };
 
-// wrapper analog to IInterface
+/**
+ * wrapper analog to IInterface
+ */
 class ICInterface : public SharedRefBase {
 public:
     ICInterface() {}
     virtual ~ICInterface() {}
 
-    // This either returns the single existing implementation or creates a new implementation.
+    /**
+     * This either returns the single existing implementation or creates a new implementation.
+     */
     virtual SpAIBinder asBinder() = 0;
 
     /**
@@ -86,7 +99,9 @@
     virtual bool isRemote() = 0;
 };
 
-// wrapper analog to BnInterface
+/**
+ * implementation of IInterface for server (n = native)
+ */
 template <typename INTERFACE>
 class BnCInterface : public INTERFACE {
 public:
@@ -98,8 +113,10 @@
     bool isRemote() override { return true; }
 
 protected:
-    // This function should only be called by asBinder. Otherwise, there is a possibility of
-    // multiple AIBinder* objects being created for the same instance of an object.
+    /**
+     * This function should only be called by asBinder. Otherwise, there is a possibility of
+     * multiple AIBinder* objects being created for the same instance of an object.
+     */
     virtual SpAIBinder createBinder() = 0;
 
 private:
@@ -107,7 +124,9 @@
     ScopedAIBinder_Weak mWeakBinder;
 };
 
-// wrapper analog to BpInterfae
+/**
+ * implementation of IInterface for client (p = proxy)
+ */
 template <typename INTERFACE>
 class BpCInterface : public INTERFACE {
 public:
