We need to make it more flexible and less coupled
This should make handling the queuing side work more reliably.