diff --git a/Interface.cpp b/Interface.cpp
index df845d8..50125d3 100644
--- a/Interface.cpp
+++ b/Interface.cpp
@@ -330,19 +330,18 @@
     return fqName().getInterfaceBaseName();
 }
 
-FQName Interface::getProxyName() const {
+FQName Interface::getProxyFqName() const {
     return FQName(fqName().package(), fqName().version(), "Bp" + getBaseName());
 }
 
-FQName Interface::getStubName() const {
+FQName Interface::getStubFqName() const {
     return FQName(fqName().package(), fqName().version(), "Bn" + getBaseName());
 }
 
-FQName Interface::getPassthroughName() const {
+FQName Interface::getPassthroughFqName() const {
     return FQName(fqName().package(), fqName().version(), "Bs" + getBaseName());
 }
 
-
 std::string Interface::getCppType(StorageMode mode,
                                   bool specifyNamespaces) const {
     const std::string base =
@@ -405,9 +404,9 @@
             << "::android::hardware::fromBinder<"
             << fqName().cppName()
             << ","
-            << getProxyName().cppName()
+            << getProxyFqName().cppName()
             << ","
-            << getStubName().cppName()
+            << getStubFqName().cppName()
             << ">("
             << binderName
             << ");\n";
@@ -428,7 +427,7 @@
         out.indent(2, [&] {
             out << fqName().cppName()
                 << ", "
-                << getProxyName().cppName()
+                << getProxyFqName().cppName()
                 << ">("
                 << name
                 << ");\n";
