   #
   # max_change constrains how far each docking element is allowed to move
   # since the last time it was laid out. 
-  solveForY : (docked, docks, max_change) -> 
+  solveForY : (docked, docks, max_change) ->
+
+    if !cassowary? 
+
+      if !dockingStation.cassowary_loading?
+        dockingStation.cassowary_loading = setInterval -> 
+          if cassowary?
+            dockingStation.solveForY(docked, docks, max_change)
+            clearInterval dockingStation.cassowary_loading
+        , 10
+
+      return
+
+
+
+
     c = cassowary
 
     # cassowary constraint solver


    if !dockingStation.listening_to_scroll_events
      
      @on_scroll = -> dockingStation.user_scrolled = true

      window.addEventListener "scroll", @on_scroll
      window.addEventListener "resize", dockingStation.onResize


      dockingStation.listening_to_scroll_events = true



  unregister : (key) -> 
    delete dockingStation.registry[key]
