Refine PoolHandler, make it better for inheritence