@a.splice(0,1) is @a.shift, you dummy!  :-)
Implement Supply.grab(&when_done)