diff --git a/lib/active_remote/rpc.rb b/lib/active_remote/rpc.rb
index <HASH>..<HASH> 100644
--- a/lib/active_remote/rpc.rb
+++ b/lib/active_remote/rpc.rb
@@ -13,8 +13,7 @@ module ActiveRemote
       # Execute an RPC call to the remote service and return the raw response.
       #
       def remote_call(rpc_method, request_args)
-        remote = self.new
-        remote.execute(rpc_method, request_args)
+        rpc.execute(rpc_method, request_args)
       end
 
       # Return a protobuf request object for the given rpc request.
@@ -32,6 +31,12 @@ module ActiveRemote
       def request_type(rpc_method)
         service_class.rpcs[rpc_method].request_type
       end
+
+      # TODO: Make this a first class citizen instead of embedding it inside
+      # the remote class
+      def rpc
+        self.new
+      end
     end
 
     # Invoke an RPC call to the service for the given rpc method.
@@ -58,7 +63,11 @@ module ActiveRemote
     # Execute an RPC call to the remote service and return the raw response.
     #
     def remote_call(rpc_method, request_args)
-      self.execute(rpc_method, request_args)
+      rpc.execute(rpc_method, request_args)
+    end
+
+    def rpc
+      self.class.rpc
     end
 
   private
Execute RPC calls using .rpc instead of instances

Currently, the RPC module is mixed into ARem::Base. This is a bad
pattern that couples the RPC layer with the data model. Instead, there
should be a clean separation much like AR's database connection.

This is the first step in unraveling all the things.