 
       if is_stuck
         y_stack += v.height
-        stuck.push [k,v]
+        stuck.push v.key
       else
-        unstuck.push [k,v]
+        unstuck.push v.key
 
     [stuck, unstuck]
 
   #######
-  # calculateYPositions
+  # solveForY
   #
   # Helper method for onScroll that returns optimal y positions for
   # each stuck component. Optimal placement facilitated by the definition

          sticky.y - scroll_distance, \
          c.Strength.strong


      # Prefer being close to the top of the viewport
      console.log "\tClose To top: #{k} = #{scroller.viewport_top}, weak" if debug
      solver.addConstraint new c.Equation \
        y_pos[k], scroller.viewport_top, c.Strength.weak

      # Try to keep it at or below the viewport, especially when scrolling up
      console.log "\tTop below viewport top: #{k} >= #{scroller.viewport_top} - #{v.jut} + #{y_stack}, #{if scrolling_down then 'weak' else 'medium'}" if debug
      solver.addConstraint new c.Inequality \

  [min_top, max_top] = recurse $el, Infinity, 0

  [max_top - min_top, min_top]
