refactor InventoryPool