separate initialization for different pool sizes