[WIP] Consumer and producer pools

And why is the correct type now a double pointer?