diff --git a/planetstack/observer/event_loop.py b/planetstack/observer/event_loop.py
index 6dc34da..5dd011b 100644
--- a/planetstack/observer/event_loop.py
+++ b/planetstack/observer/event_loop.py
@@ -22,7 +22,14 @@
 class StepNotReady(Exception):
     pass
 
-def toposort(g, steps):
+def toposort(g, steps=None):
+	if (not steps):
+		keys = set(g.keys())
+		values = set({})
+		for v in g.values():
+			values=values | set(v)
+		
+		steps=list(keys|values)
     reverse = {}
 
     for k,v in g.items():
@@ -42,7 +49,7 @@
         if (not v):
             sources.append(k)
 
-    order = []
+    rev_order = []
     marked = []
 
     while sources:
@@ -54,8 +61,10 @@
                     marked.append(m)
         except KeyError:
             pass
-        order.append(n)
+		if (n in steps):
+			rev_order.append(n)
 
+	order = rev_order.reverse()
     order.extend(set(steps)-set(order))
     return order
 
