diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/request/EmployeeRequest.java b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/request/EmployeeRequest.java
index cc3afaf..fdf999d 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/request/EmployeeRequest.java
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/request/EmployeeRequest.java
@@ -16,13 +16,12 @@
 package com.google.gwt.sample.expenses.client.request;
 
 import com.google.gwt.requestfactory.shared.Instance;
-
-import com.google.gwt.requestfactory.shared.ProxyListRequest;
-import com.google.gwt.requestfactory.shared.ProxyRequest;
 import com.google.gwt.requestfactory.shared.Request;
 import com.google.gwt.requestfactory.shared.Service;
 import com.google.gwt.sample.expenses.server.domain.Employee;
 
+import java.util.List;
+
 /**
  * "API Generated" request selector interface implemented by objects that give
  * client access to the methods of
@@ -47,23 +46,23 @@
   /**
    * @return a request object
    */
-  ProxyListRequest<EmployeeProxy> findAllEmployees();
+  Request<List<EmployeeProxy>> findAllEmployees();
 
   /**
    * @return a request object
    */
-  ProxyRequest<EmployeeProxy> findEmployee(Long id);
+  Request<EmployeeProxy> findEmployee(Long id);
 
   /**
    * @return a request object
    */
-  ProxyListRequest<EmployeeProxy> findEmployeeEntries(int firstResult,
+  Request<List<EmployeeProxy>> findEmployeeEntries(int firstResult,
       int maxResults);
 
   /**
    * @return a request object
    */
-  ProxyListRequest<EmployeeProxy> findEmployeeEntriesByDepartment(
+  Request<List<EmployeeProxy>> findEmployeeEntriesByDepartment(
       String department, int firstResult, int maxResults);
 
   /**
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/request/ExpenseRequest.java b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/request/ExpenseRequest.java
index 76da8a1..3253f15 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/request/ExpenseRequest.java
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/request/ExpenseRequest.java
@@ -16,12 +16,12 @@
 package com.google.gwt.sample.expenses.client.request;
 
 import com.google.gwt.requestfactory.shared.Instance;
-import com.google.gwt.requestfactory.shared.ProxyListRequest;
-import com.google.gwt.requestfactory.shared.ProxyRequest;
 import com.google.gwt.requestfactory.shared.Request;
 import com.google.gwt.requestfactory.shared.Service;
 import com.google.gwt.sample.expenses.server.domain.Expense;
 
+import java.util.List;
+
 /**
  * "API Generated" request selector interface implemented by objects that give
  * client access to the methods of
@@ -35,17 +35,17 @@
   /**
    * @return a request object
    */
-  ProxyListRequest<ExpenseProxy> findAllExpenses();
+  Request<List<ExpenseProxy>> findAllExpenses();
 
   /**
    * @return a request object
    */
-  ProxyRequest<ExpenseProxy> findExpense(Long id);
+  Request<ExpenseProxy> findExpense(Long id);
 
   /**
    * @return a request object
    */
-  ProxyListRequest<ExpenseProxy> findExpensesByReport(Long id);
+  Request<List<ExpenseProxy>> findExpensesByReport(Long id);
 
   /**
    * @return a request object
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/request/ReportRequest.java b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/request/ReportRequest.java
index 4c8acee..a5ced03 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/request/ReportRequest.java
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/request/ReportRequest.java
@@ -16,12 +16,12 @@
 package com.google.gwt.sample.expenses.client.request;
 
 import com.google.gwt.requestfactory.shared.Instance;
-import com.google.gwt.requestfactory.shared.ProxyListRequest;
-import com.google.gwt.requestfactory.shared.ProxyRequest;
 import com.google.gwt.requestfactory.shared.Request;
 import com.google.gwt.requestfactory.shared.Service;
 import com.google.gwt.sample.expenses.server.domain.Report;
 
+import java.util.List;
+
 /**
  * "API Generated" request selector interface implemented by objects that give
  * client access to the methods of
@@ -46,30 +46,30 @@
   /**
    * @return a request object
    */
-  ProxyListRequest<ReportProxy> findAllReports();
+  Request<List<ReportProxy>> findAllReports();
 
   /**
    * @return a request object
    */
-  ProxyRequest<ReportProxy> findReport(Long id);
+  Request<ReportProxy> findReport(Long id);
 
   /**
    * @return a request object
    */
-  ProxyListRequest<ReportProxy> findReportEntries(int firstResult,
+  Request<List<ReportProxy>> findReportEntries(int firstResult,
       int maxResults);
 
   /**
    * @return a request object
    */
-  ProxyListRequest<ReportProxy> findReportEntriesBySearch(Long employeeId,
+  Request<List<ReportProxy>> findReportEntriesBySearch(Long employeeId,
       String department, String startsWith, String orderBy, int firstResult,
       int maxResults);
 
   /**
    * @return a request object
    */
-  ProxyListRequest<ReportProxy> findReportsByEmployee(Long employeeId);
+  Request<List<ReportProxy>> findReportsByEmployee(Long employeeId);
 
   /**
    * @return a request object
