diff --git a/includes/entity.operations.inc b/includes/entity.operations.inc
index a92d1a8..7b4f12a 100755
--- a/includes/entity.operations.inc
+++ b/includes/entity.operations.inc
@@ -14,8 +14,7 @@ class EntityOperationsDefaultUIController {
 
   protected $entityType;
   protected $entityInfo;
-  // Argh, public because of the op handlers.
-  public $path;
+  protected $path;
 
   public function __construct($entity_type) {
     $this->entityType = $entity_type;
@@ -56,9 +55,6 @@ class EntityOperationsDefaultUIController {
 
       $handler_class = $operation_definition['handler'];
       $operation_handler = new $handler_class($this->entityType, $operation_path);
-      // Some handlers need to get some of our properties.
-      // TODO: this is a bit ugly.
-      $operation_handler->controller = $this;
 
       $operation_handler_info = $operation_handler->operationInfo();
 
diff --git a/includes/entity_operations.operation_handlers.inc b/includes/entity_operations.operation_handlers.inc
index df10490..9ef37b6 100644
--- a/includes/entity_operations.operation_handlers.inc
+++ b/includes/entity_operations.operation_handlers.inc
@@ -1109,10 +1109,12 @@ class EntityOperationsOperationAdd extends EntityOperationsOperationBase {
    * Properties for the menu item specific to this handler.
    */
   function menu_item($operation_path, $operation_definition, $loader_position) {
+    $entity_info = entity_get_info($this->entityType);
+
     $item = array(
       'title' => 'Add',
       // Special path which doesn't have an entity loader.
-      'path' => $this->controller->path . '/add',
+      'path' => $entity_info['operations ui']['path'] . '/add',
       // We don't want a tab.
       'type' => MENU_CALLBACK,
       'page callback' => 'entity_operations_operation_page_callback',
@@ -1134,7 +1136,6 @@ class EntityOperationsOperationAdd extends EntityOperationsOperationBase {
 
     // Use the file setting from entity info 'admin ui', as we expect that to be
     // used for the entity form callback.
-    $entity_info = entity_get_info($this->entityType);
     if (isset($entity_info['admin ui']['file'])) {
       $item['file'] = $entity_info['admin ui']['file'];
     }
@@ -1599,9 +1600,11 @@ class EntityOperationsOperationAddGeneric extends EntityOperationsOperationEditG
    * Properties for the menu item specific to this handler.
    */
   function menu_item($operation_path, $operation_definition, $loader_position) {
+    $entity_info = entity_get_info($this->entityType);
+
     $item = array(
       // Special path which doesn't have an entity loader.
-      'path' => $this->controller->path . '/add',
+      'path' => $entity_info['operations ui']['path'] . '/add',
       // We don't want a tab.
       'type' => MENU_CALLBACK,
       // Change the callback arguments to pass NULL for the entity parameter.
