put("update", new UpdateNodeExecutor());
             put("break", new BreakNodeExecutor());
             put("while", new WhileNodeExecutor());
+
         }
     };
 
                     executor.getClass().getName());
             return (executor.execute(this, node, ctx));
         } else {
-            if (LOG.isDebugEnabled()) {
-                LOG.debug("{} node not implemented", node.getNodeType());
-            }
-            SvcLogicNode nextNode = node.getOutcomeValue("failure");
-            if (nextNode != null) {
-                if (LOG.isDebugEnabled()) {
-                    LOG.debug("about to execute failure branch");
-                }
-                return (nextNode);
-            }
-
-            nextNode = node.getOutcomeValue("Other");
-            if (nextNode != null) {
-                if (LOG.isDebugEnabled()) {
-                    LOG.debug("about to execute Other branch");
-                }
-            } else {
-                if (LOG.isDebugEnabled()) {
-                    LOG.debug("no failure or Other branch found");
-                }
-            }
-            return (nextNode);
+            throw new SvcLogicException("Attempted to execute a node of type " + node.getNodeType() + ", but no executor was registered for this type");
         }
     }