add memory pool support