Implements queuing system base on bennadel blog post