add in ability to use pools for allocation